JAVA EE: JAX-RS Dump Request / Response

Bei Problemen mit Webservices interessiert mich immer was denn tatsächlich über die Leitung geschickt wird. Nutzt man JavaEE + JAX-RS Client API ist das manchmal gar nicht direkt ersichtlich, was denn jetzt wirklich über die Leitung geht. Server und Client de-/serialisieren die Objekte automatisch mittels JAXB, man sieht also gar nicht das XML oder JSON das über die Leitung geschickt wird. Dem lässt sich aber leicht Abhilfe schaffe. Dazu gibt es im JAX-RS 2.0 Standard ContainerRequestFilter, ContainerResponseFilter, WriterInterceptor und ReaderInterceptor. Damit lassen sich die Requests vom Client bzw. die Responses vom Server analysieren. Alternativ ließe sich auch der LogLevel des HttpClients hochdrehen, aber ich finde es einfacher einfach ein JAR mit in mein Deployment zu packen.

Eine erste Implementierung des Dump-Filter findet ihr auf Github. Die Installation ist einfach. Nach einem mvn clean install packt ihr das JAR einfach mit ins lib-Verzeichnis eures WARs. Mittels der context-params dump.response und dump.request lässt sich der jeweilige Filter deaktivieren. Die Ausgaben findet ihr im server.log (INFO).

Fehler und/oder Features könnt ihr gerne auf Github melden.