Tcpmon is a open source project hosted at Apache. It is a very usefull easy to use java tool when developing Web Services. Here are some of the screen shots of tcpmon tool
As you can see all you need to do is to set listen port and target port.
Using tcpmon tool you can varify the soap messages exchanged effectively. When you want to capture the soap messages exchanged between the client and the server, you can use tcpmon to do it very easily.
Here is a sample senario.
Say you want to capture the soap messages sent and received by a php web service client.
Since Apache2 server runs on port 80, set the target port to 80 and Listen port to some other pot. Eg 8080.
Now open the client file and set the modify the "to" endpoint as follows.
I use the echo_client.php sample from WSF/PHP here.
$client = new WSClient(array( "to" => "http://localhost:8080/samples/echo_service.php" ));
As you can see, now I am sending the client message to the listen port I set in tcpmon which is 8080. Now when the client is run, tcpmon will capture the message, display it and also send the message to Apache2 as well. Above picture 2 shows the output captured .