Я использую Apache CXF для своих веб-сервисов. Я создал экземпляр AbstractSoapInterceptor
. В своем методе public void handleMessage(SoapMessage message) throws Fault
я хотел бы напечатать XML-содержимое перехваченного сообщения на консоли. Как я могу это достичь?Печать XML-содержимого сообщения SOAP
0
A
ответ
8
Проверьте this и найдите INBOUND INTERCEPTOR. Будет ли разместить его здесь для справки ...
public class InterceptorMensajeSOAPIn extends AbstractSoapInterceptor {
private static Logger log =
Logger.getLogger(InterceptorMensajeSOAPIn.class);
private SAAJInInterceptor saajIn = new SAAJInInterceptor();
public InterceptorMensajeSOAPIn(){
super(Phase.PRE_PROTOCOL);
getAfter().add(SAAJInInterceptor.class.getName());
}
public void handleMessage(SoapMessage message) throws Fault {
SOAPMessage soapMessage = getSOAPMessage(message);
try {
soapMessage.writeTo(System.out);
} catch (Exception e) {
e.printStackTrace();
}
}
private SOAPMessage getSOAPMessage(SoapMessage smsg){
SOAPMessage soapMessage = smsg.getContent(SOAPMessage.class);
if (soapMessage == null) {
saajIn.handleMessage(smsg);
soapMessage = smsg.getContent(SOAPMessage.class);
}
return soapMessage;
}
}
2
какой-либо причине вы не можете просто использовать LoggingInInterceptor
, поставляемую с CXF? Вы могли бы просто взять код для этого и использовать его в качестве основы, но в 2.3, LoggingInInterceptor
был расширен, чтобы разрешить указание печати и т. Д., Чтобы он мог «просто работать».
1
Вы можете также использовать функцию для этого: org.apache.cxf.feature.LoggingFeature
:
<jaxws:endpoint ...>
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature"/>
</jaxws:features>
</jaxws:endpoint>
Смежные вопросы
- 1. Как перехватывать сообщения SOAP
- 2. Формат сообщения PayPal SOAP
- 3. Deserializing detail сообщения SOAP
- 4. SOAP Сообщения на iPhone
- 5. Истечение сообщения SOAP
- 6. Подтверждение подписи сообщения SOAP
- 7. Вручную создайте сообщения SOAP?
- 8. Отправка SOAP-сообщения
- 9. Извлечение SOAP тело из сообщения SOAP
- 10. проверка сообщения SOAP, подписанного WCF
- 11. Исключение при получении сообщения SOAP
- 12. Получение и обработка сообщения SOAP
- 13. сообщения через SOAP бросает CommunicationException
- 14. отправки сообщения SOAP в Java
- 15. Кому нужны (SOAP) надежные сообщения?
- 16. Может Firebase принимать сообщения SOAP
- 17. Запись SOAP-сообщения через ValidationEventHandler
- 18. Чтение элемента из сообщения SOAP
- 19. XSL-перевод для сообщения SOAP
- 20. Печать сообщения при прокрутке таблицы
- 21. Печать Простые сообщения в Python
- 22. Печать сообщения после успешной компиляции
- 23. Печать многострочного сообщения с NLog
- 24. Как регистрировать сообщения SOAP, отправляемые стеком Metro
- 25. WSE2 to WCF: Подписание SOAP-сообщения
- 26. B2B обработки SOAP сообщения, но нет ответа
- 27. Получить строки из сообщения SOAP в Java
- 28. Создание и отправка сообщения SOAP в Java
- 29. Как удалить пустой заголовок из сообщения SOAP?
- 30. Инструмент для создания SOAP-сообщения в PHP
Будет ли это решение работать с CxF 3.x? Я попробовал это, и вызов getContent всегда возвращает null, но, возможно, я делаю что-то еще неправильно или api изменился в 3.0. – bwfrieds