Клиент веб-сервиса Java JAX-WS: как запрос журнала и ответ xml?

Я создал реализацию LoggingHandler, которая реализует SOAPHandler<SOAPMessageContext>

Он должен регистрироваться всякий раз, когда handleMessage триггеры (и он никогда не вызывается в моем случае)

MyService service = new MyService();
MyServicePort port = service.getPortType();

теперь я пробую это:

BindingProvider bindingProvider = (BindingProvider)port;
bindingProvider.getBinding().getHandlerChain().add(new LoggingHandler());

Я не вижу ни одного запроса/ответа xml.

Можете ли вы предложить какое-либо решение? Может быть, есть еще один способ увидеть вывод и запросить XML?

Ответ 1

Он начинает работать, если вы используете этот метод:

binding.setHandlerChain(handlerList);

Итак, сначала инициализируйте этот список с помощью

binding.getHandlerChain();

затем добавьте свой элемент в список и в конце концов

setHandlerChain();

Ответ 2

вы можете добавить регистратор в файл log4j.xml:

<!-- Log WebService inputs and outputs -->
<logger name="org.apache.cxf.interceptor">
    <level value="INFO" />
    <appender-ref ref="[YOUR_LOGGER]" />
</logger>