Пару простых хинтов для тех, кто начинает изучать работу с 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, то естественно настраивать дамп конвертов нужно будет другим способом. В этом плане подход с использованием прокси более универсальный. Тем не менее, изучать способ настройки прокси всё-равно нужно будет под конкретный фреймворк.