Как регистрировать SOAP-сообщения, отправляемые стеком Metro

Я пытаюсь записать свои сообщения, которые отправляются с использованием стека Metro, в консоль. Не смог найти никакой возможности.

3 ответа

Решение

Регистрация сообщений на стандартный вывод (действует только для METRO!):

На клиенте

Java 5: установить системное свойство

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

Java 6: установить системное свойство

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

На стороне сервера

Установить системное свойство

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

Здесь все объясняется:

https://metro.java.net/2.0/guide/Logging.html

Следующие параметры включают ведение журнала всех сообщений с консоли (технически вам нужен только один из них, но это зависит от библиотек, которые вы используете, поэтому установка всех четырех параметров безопаснее).

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

Не упомянул язык, но предполагая Java, не могли бы вы просто использовать что-то вроде Log4J, например

service = new Service();
port = service.getXxxPort();
result = port.doXxx(data);

Log.info("Result is " + result.getResult().toString());

где getResult - это просто метод возвращаемого объекта.

Другие вопросы по тегам