2012-06-11 33 views
6

Trong hệ thống của chúng tôi (hệ thống khép kín, ứng dụng web java trong tomcat 6 là máy chủ, máy khách chất béo java), khách hàng của chúng tôi thỉnh thoảng hiển thị phản hồi "400 - Yêu cầu không hợp lệ". Tôi muốn gỡ lỗi này ở phía máy chủ, nhưng vì các yêu cầu dường như không hợp lệ, tôi không thấy chúng ở bất kỳ đâu. Tôi đã cấu hình AccessLogValve cho máy chủ tomcat hoàn chỉnh, nhưng các yêu cầu không xuất hiện ở đó. Tôi thậm chí không thấy bất cứ điều gì trong catalina.out.Làm thế nào để đăng nhập/gỡ lỗi yêu cầu xấu trong tomcat?

Tôi rất muốn nhận các yêu cầu này được ghi lại và thậm chí tốt hơn là đặt yêu cầu dựa trên các tiêu chí nhất định.

Bất kỳ ý tưởng nào?

server.xml của tôi trông như thế này:

<Server port="8005" shutdown="SHUTDOWN"> 
    <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" /> 
    <Listener className="org.apache.catalina.core.JasperListener" /> 
    <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> 
    <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> 
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
    <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" 
rmiServerPortPlatform="9098" 
rmiRegistryPortPlatform="9099" 
useLocalPorts="true" /> 
    <Service name="Catalina"> 
    <Connector port="8020" protocol="HTTP/1.1" redirectPort="8010" connectionTimeout="20000" /> 
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="cc1"> 
     <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false" 
     deployOnStartup="true" xmlValidation="false" xmlNamespaceAware="false"> 
     <Valve className="org.apache.catalina.valves.AccessLogValve" 
       directory="logs" prefix="access_log." 
       suffix=".txt" pattern="combined" resolveHosts="false" /> 
     </Host> 
    </Engine> 
    </Service> 
</Server> 

Trả lời

1

thời gian dài trước đây - nhưng dù sao: Tomcat có Van khác nhau mà có thể giúp đạt được điều đó: http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Request_Dumper_Valve

Một lựa chọn khác sẽ là tcpdump vì nó là HTTP và mã phản hồi có vẻ như có thể lọc các yêu cầu thô gây ra điều này.

+0

RequestDumperValve là một giải pháp tốt để gỡ lỗi, nhưng chăm sóc một số vấn đề xảy ra với nó. Các Umlauts được sửa đổi, làm ví dụ: https://issues.apache.org/bugzilla/show_bug.cgi?id=40177 –

+0

RequestDumperValve dường như đã bị xóa trong Tomcat 7. –

Các vấn đề liên quan