Клиент веб-сервиса 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>