Пару простых хинтов для тех, кто начинает изучать работу с SOAP.

Java 6

С тех пор как вышел JDK 6 (декабрь 2006г) веб-сервисы стали доступны из "коробки". В итоге начинать изучение работы с ними стало намного легче, без томкатов, жбоссов, глассфишей и других больших серверов.

Учебных материалов по работе с веб-сервисами существует огромное количество. В этой статье я хотел только привести два популярных и полезных JVM ключа.

Дампим отсылку SOAP-сообщения на консоль со стороны клиента:

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

Дампим отсылку SOAP-сообщения на консоль со стороны сервера:

-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true

Прокси

Другой способ для отладки - использовать прокси.
Я в работе использую Fiddler. Думаю этот инструмент хорошо знаком большему количеству веб-разработчиков.
С его помощью можно отслеживать запросы, эмулировать работу на медленных соединениях и т.д.

Например, если вы работает по SOAP из standalone-приложении (Java 6), то, настроив системные свойства для прокси, можно через Fiddler просматривать что отправляется на самом деле:

// или -Dhttp.proxyHost= и т.д.
System.setProperty("http.proxyHost", "localhost");
System.setProperty("http.proxyPort", "8888");
// ВАЖНО! Чтобы локалхост не исключил.
System.setProperty("http.nonProxyHosts", "");

Замечания

Если вы используете Аxis или какую-то другую библиотеку для работы с SOAP, то естественно настраивать дамп конвертов нужно будет другим способом. В этом плане подход с использованием прокси более универсальный. Тем не менее, изучать способ настройки прокси всё-равно нужно будет под конкретный фреймворк.