私たちのシステム(クローズドシステム、Tomcat 6のjava Webアプリケーション、サーバーとしてのJavaのfatクライアント)では、クライアントは時々 "400 - Bad Request"応答を表示します。私はサーバー側でこれをデバッグしたいと思いますが、リクエストが無効であるようだからどこにも表示されません。完全なTomcatホスト用にAccessLogValveを設定しましたが、要求はそこに表示されません。私はcatalina.outで何も見ない。Tomcatで不正なリクエストを記録/デバッグする方法は?
私はこれらの要求をログに記録し、特定の基準に基づいて要求をダンプすることをお勧めします。
アイデア?
私の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>
RequestDumperValveはデバッグには適していますが、発生するいくつかの問題を処理します。 Umlautが変更されています。例:https://issues.apache.org/bugzilla/show_bug.cgi?id=40177 –
RequestDumperValveはTomcat 7で削除されたようです。 –