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.