我需要基于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;
}