您可以在访问日志中看到所有发送到您服务器的请求。只需在 $TOMCAT_HOME/conf/server.xml 中注释掉 AccessLogValve。
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
无法记录 4xx 请求,但可以按照以下说明破解源代码。
删除org.apache.solr.servlet.SolrDispatchFilter.java * sendError * 方法中的测试代码条件。
protected void sendError(HttpServletResponse res, Throwable ex) throws IOException {
int code=500;
String trace = "";
if( ex instanceof SolrException ) {
code = ((SolrException)ex).code();
}
// For any regular code, don't include the stack trace
if( code == 500 || code < 100 ) {
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
trace = "\n\n"+sw.toString();
SolrException.logOnce(log,null,ex );
// non standard codes have undefined results with various servers
if( code < 100 ) {
log.warn( "invalid return code: "+code );
code = 500;
}
}
res.sendError( code, ex.getMessage() + trace );
}
编译后,您需要将新的 apache-solr-core-*.jar 放入 WEB-INF/lib,然后重新启动您的 Web 容器。您将看到如下所示的所有错误。
2011 年 9 月 22 日下午 5:29:18 org.apache.solr.common.SolrException 日志严重:org.apache.solr.common.SolrException:未知处理程序:在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter .java:227) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina。 core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina。Valves.AccessLogValve.invoke(AccessLogValve.java:555) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net .JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:662)在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:第489章)在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:第489章)