SoapHandler过早触发

时间:2016-02-16 19:32:16

标签: java soap

我使用像这样的SoapHandler拦截传入和传出的soap消息:

    @Override
    public boolean handleMessage(SOAPMessageContext context) {
        boolean isResponse = (Boolean)context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

    if(!isResponse){
            logger.debug("MySoapHandler.handleMessage(): this is a soap request");
            SOAPMessage soapMsg = context.getMessage();
            SOAPMessage = createNewSoapRequest(soapMsg);
            context.setMessage(newSoapMsg);
    }
    else {
            logger.debug("MySoapHandler.handleMessage(): this is a soap response");            
            SOAPMessage soapMsg = context.getMessage();
            SOAPMessage newSoapMsg = createNewSoapResponse(soapMsg);
            context.setMessage(newSoapMsg);
    }
    return true;        
}

我收到传入的肥皂消息并将其替换为新消息并将其发送到途中。我可以监控收到的消息及其替换,一切看起来都正确。如果我注释掉传入的部分并通过使用SoapUI发送正确的请求来测试传出的部分,则拦截传出的soap响应并替换为新消息。这也似乎工作正常。

当我取消对收到的部分发表评论时,请告诉我们' rip,正确触发传入的响应,但是在生成它的主代码完成之前,传出响应似乎过早被触发。任何人都能解释一下吗?

0 个答案:

没有答案