Мне нужно установить пользовательский заголовок мыла на основе некоторых параметров, присутствующих в ответном сообщении SOAP.
Я использовал обработчик SOAP для выполнения этого требования, я могу установить пользовательский заголовок с жестко закодированными значениями, но я не могу прочитать ответ SOAP в методе handleMessage, я пробовал так много способов, но не повезло, пожалуйста, сообщите.
Я перепробовал слишком много способов получить мыльный ответ, при отладке, когда элемент управления достигает первой строки сообщения дескриптора, SOAP-ответ вместе с SOAP-запросом присутствует в soapMessageContext, но когда я пытался получить тело ответа ( смотрите фрагмент кода ниже) Я получаю SOAPBody = null.
Мой класс обработчиков -> метод handleMessage
public boolean handleMessage(SOAPMessageContext soapMessageContext) {
// TODO Auto-generated method stub
LOG.debug("Server : handleMessage()......");
try{
if ((Boolean) soapMessageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY)) {
SOAPMessage message = soapMessageContext.getMessage();
SOAPPart SOAPPart = message.getSOAPPart();
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
SOAPBody body = envelope.getBody(); //returns null
SOAPHeader header = message.getSOAPHeader();
SOAPBody b = message.getSOAPBody(); //returns null
Source msg= message.getSOAPPart().getContent(); //returns null
SOAPElement element1=header.addHeaderElement(new QName("namespace", "UniqueCode"));
element1.setValue("UUID-123");
SOAPElement element2= header.addHeaderElement(new QName("namespace","Status"));
element2.setValue("OK");
message.saveChanges();
}
}
catch(SOAPException e){
System.err.println(e);
}
return true;
}