Comments? Feedback?

This wiki does not yet support public comments (a limitation of Google Sites), so we encourage you to post your comments either:

On Twitter by responding to @orbeon.

On our community mailing list: subscribe sending an email to ops-users-subscribe@ow2.org (content of subject/body doesn't matter), you'll get a response with the email to use to send your message to the community mailing list.

Recent site activity

Monitoring HTTP Requests


Tools

When investigating some issues, you often need to look at what goes "over the wire", in the HTTP requests between the client and the server. You may want to look at the HTTP requests as sent/received on the browser, on the application server, or somewhere in between.

  • On the browser, the server, or in between:

    • On OS X, HTTP Scoop ($15) is both simple and efficient. If you're on OS X, look no further.
    • WireShark is a workhorse. It can do a lot more than monitoring HTTP requests, but can also be intimidating. Lately, usability, including the installing process, has improved significantly. (See below for more details on WireShark.)
    • Apache TCPMon is very versatile tool; highly recommended; see the TCPMon tutorial

  • On the server:

    • XForms logging
    • Request Dumper Filter; see below
    • On Tomcat, you can use the Request Dumper Valve; see below

  • On the browser-side:

    • On Firefox, use Firebug and look at the Net tab, or the Console tab for Ajax requests.
    • On IE, use either one of the following plugins:
    • On the Mac (any browser), use HTTPScoop

WireShark

After you install WireShark, click on Capture Options, and setup a setup the Capture Filter to be tcp port 8080. (Replace 8080 with the port on which your application server or services are listening, as appropriate.)


Click Start, and since you only interested about HTTP (versus TCP) traffic, in Filter type http and press enter to apply.


Next WireShark will show you all the HTTP traffic that goes through the machine it is running on, to the port you specified (here 8080).

Request Dumper Filter

Note that the Request Dumper Filter only shows information about the HTTP headers of the request. If you want more information to be logged, use the Apache TCPMon.
  1. The Request Dumper Filter comes with Tomcat, so even if you are not using Tomcat, start by downloading Tomcat.
  2. Unzip Tomcat, and copy the directory webapps/servlets-examples/WEB-INF/classes/filters to the WEB-INF/classes directory of your web application.
  3. Edit WEB-INF/web.xml and add:
    • After the declaration of the filter ops-xforms-filter:
          <filter>
              <filter-name>request-dumper-filter</filter-name>
              <filter-class>filters.RequestDumperFilter</filter-class>
          </filter>
    • After the filter mapping for ops-xforms-filter:
          <filter-mapping>
              <filter-name>request-dumper-filter</filter-name>
              <url-pattern>/*</url-pattern>
          </filter-mapping>
  4. Restart your application server (e.g. Tomcat).
  5. On Tomcat, requests will be logged to the logs/localhost log file.

Request Dumper Valve

The Request Dumper Valve doesn't log the body of POSTs, it can only be used on Tomcat, and we found its output to be less readable than what you get with the Request Dumper Filter. But if you still want to experiment with the Request Dumper Valve, add the following in server.xml inside <Engine>:

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