SOAPHandler-无法从SOAPMessageContext获取响应消息

时间:2019-05-09 10:25:07

标签: java soap soaphandler

我需要基于SOAP Response消息中存在的一些参数来设置自定义肥皂头。 我已经使用SOAP处理程序来满足此要求,我可以使用硬编码的值设置自定义标头,但是我无法在handleMessage方法中读取SOAP响应,我尝试了很多方法但没有运气,请指教。

我尝试了太多的方法来获取soap响应,而在调试时,当控件到达句柄消息的第一行时,soapMessageContext中会出现SOAP响应以及SOAP请求,但是当我尝试获取响应正文时(请参见下面的代码段)。我得到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;
}

0 个答案:

没有答案