SOAPHandler - не удалось получить ответное сообщение от SOAPMessageContext - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно установить пользовательский заголовок мыла на основе некоторых параметров, присутствующих в ответном сообщении 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;
}
...