トラフィックモニタを使わずにSOAPメッセージをモニタする方法

Webサービスのクライアントを開発している際に、クライアントとサーバ間で実際にどのようなSOAPメッセージがやり取りされているかを知りたいというケースがある。


tcpmonwsmonitorなどのトラフィックモニタを利用すると、もちろんこれは実現可能なのだが、JAX-WSを使っている場合には上記のツールを使わなくても、以下のシステムプロパティを設定する事でSOAPメッセージを標準出力にダンプする事が出来る。

com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true


NetBeans IDEを利用している場合には、プロジェクトのプロパティ画面を起動し、[Run]カテゴリの[VM Options]の所に、"-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true"と入力する事で、実行結果の画面にクライアントとサーバ間でやり取りされたSOAPメッセージが出力される。


参照:
 http://weblogs.java.net/blog/ramapulavarthi/archive/2006/08/monitoring_soap.html


【追記】
 Java 7ではシステムプロパティに設定する値が以下のように変わったようなので注意が必要。

com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true