6

在我们的系统(封闭系统,tomcat 6 中的 java web 应用程序作为服务器,java fat 客户端)中,我们的客户端偶尔会显示“400 - 错误请求”响应。我想在服务器端调试它,但由于请求似乎无效,我在任何地方都看不到它们。我为完整的 tomcat 主机配置了 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>
4

1 回答 1

1

很久以前 - 但无论如何:Tomcat有不同的阀门可能有助于实现这一目标:http: //tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Request_Dumper_Valve

另一种选择是 tcpdump,因为它是 HTTP 和响应代码,似乎可以过滤导致此问题的原始请求。

于 2013-04-18T07:30:14.607 回答