Debugging with RequestDumperValve

Occasionally you will want to get a more verbose look at web traffic, much like the telnet and nc conversations detailed in the last section. Tomcat provides a tool for this very purpose: the RequestDumperValve. It is very easy to set up; just uncomment a line in server.xml, or add the line within any Host or Context:

<Valve
  className="org.apache.catalina.valves.RequestDumperValve"
/>

Once you restart Tomcat, you will get a very verbose output appearing in the log for the given Server, Host, or Context. To get an idea of how much information RequestDumperValve provides, Example 8-5 is a portion of a 106-line log for one hit on a web site (every line was preceded by a timestamp, which we've removed to save paper).

Each request begins with a line of equal signs, and a line of dashes separates the request and the response. This particular example was a request for /index.jsp.

Example 8-5. RequestDumperValve output for request to /darwinsys/

RequestDumperValve[/darwinsys]: =============================================================== RequestDumperValve[/darwinsys]: REQUEST URI =/darwinsys/index.jsp RequestDumperValve[/darwinsys]: authType=null RequestDumperValve[/darwinsys]: characterEncoding=null RequestDumperValve[/darwinsys]: contentLength=−1 RequestDumperValve[/darwinsys]: contentType=null RequestDumperValve[/darwinsys]: contextPath=/darwinsys RequestDumperValve[/darwinsys]: cookie=JSESSIONID=C04FE083F247D0C7F24174AA8B 78B526 RequestDumperValve[/darwinsys]: ...

Get Tomcat: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.