【问题标题】:How to log/debug bad requests in tomcat?如何在tomcat中记录/调试错误请求?
【发布时间】:2012-06-14 06:55:46
【问题描述】:

在我们的系统中(封闭系统,tomcat 6 中的 java web 应用程序作为服务器,java 胖客户端)我们的客户端偶尔会显示“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>

【问题讨论】:

    标签: http tomcat tomcat6 bad-request


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2013-09-03
    • 1970-01-01
    相关资源
    最近更新 更多