2012-06-11 6 views
6

In unserem System (geschlossenes System, Java-Webanwendung in Tomcat 6 als Server, java fat Clients) zeigen unsere Clients gelegentlich "400 - Bad Request" Antworten. Ich möchte dies auf der Serverseite debuggen, aber da die Anfragen ungültig scheinen, sehe ich sie nirgendwo. Ich habe das AccessLogValve für den kompletten Tomcat-Host konfiguriert, aber die Anfragen erscheinen dort nicht. Ich sehe gar nichts in catalina.out.Wie loggen/debuggen Sie fehlerhafte Anfragen in Tomcat?

Ich würde gerne diese Anfragen protokolliert bekommen und noch besser wäre es, Anfragen nach bestimmten Kriterien abzuladen.

Irgendwelche Ideen?

Mein server.xml sieht wie folgt aus:

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

Antwort

1

schon vor langer Zeit - aber trotzdem: Tomcat hat verschiedene Ventile, die das erreichen helfen können: http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Request_Dumper_Valve

Eine weitere Option tcpdump wäre, da es HTTP und ein Response-Code scheint es möglich, die rohen Anfragen, die dies verursachen, zu filtern.

+0

RequestDumperValve ist eine gute Lösung für das Debuggen, aber kümmern Sie sich um einige Probleme, die damit auftreten. Die Umlaute wurden als Beispiel geändert: https://issues.apache.org/bugzilla/show_bug.cgi?id=40177 –

+0

RequestDumperValve scheint in Tomcat 7 entfernt worden zu sein. –

Verwandte Themen