2012-06-11 12 views
6

हमारे सिस्टम में (बंद सिस्टम, जावा वेब एप्लिकेशन सर्वर के रूप में टोमकैट 6 में, जावा वसा क्लाइंट) हमारे ग्राहक कभी-कभी "400 - खराब अनुरोध" प्रतिक्रिया दिखाते हैं। मैं इसे सर्वर की ओर से डीबग करना चाहता हूं, लेकिन चूंकि अनुरोध अमान्य प्रतीत होते हैं, इसलिए मैं उन्हें कहीं भी नहीं देखता हूं। मैंने पूर्ण टोमकैट होस्ट के लिए AccessLogValve को कॉन्फ़िगर किया है, लेकिन अनुरोध वहां दिखाई नहीं देते हैं। मुझे catalina.out में कुछ भी नहीं दिख रहा है।टोमकैट में खराब अनुरोधों को लॉग/डीबग कैसे करें?

मुझे इन अनुरोधों को लॉग इन करना अच्छा लगेगा और कुछ मानदंडों के आधार पर अनुरोधों को डंप करना बेहतर होगा।

कोई विचार?

मेरे server.xml इस तरह दिखता है:

<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> 

उत्तर

1

लंबे समय पहले - लेकिन वैसे भी: http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Request_Dumper_Valve

एक अन्य विकल्प tcpdump होगा यह है के बाद से: बिलाव विभिन्न वाल्व कि प्राप्त करने के लिए है कि मदद मिल सकती है है एचटीटीपी और एक प्रतिक्रिया कोड ऐसा लगता है कि कच्चे अनुरोधों को फ़िल्टर करना संभव है।

+0

RequestDumperValve डिबगिंग के लिए एक अच्छा समाधान है, लेकिन इसके साथ होने वाली कुछ समस्याओं का ख्याल रखना। Umlauts को एक उदाहरण के रूप में संशोधित किया गया है: https://issues.apache.org/bugzilla/show_bug.cgi?id=40177 –

+0

RequestDumperValve को टॉमकैट 7 में हटा दिया गया प्रतीत होता है। –