使用EndpointInterceptorAdapter在有无效标头时仍设置一些内容

时间:2013-02-11 07:58:10

标签: java spring-ws

所以我从Spring-ws 2开始,我正在尝试处理包含标题和正文的请求。现在我想确保标题包含某个变量,所以我实现了一个成功输入的EndpointInterceptorAdapter。

然而,当它不存在时,我返回false并且没有调用我的实际端点,这是我所期望的。但是,我仍然希望将非空响应发送回用户。有没有办法实现这一点,或者我应该检查我的端点中的标题,如果我想实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以在EndpointInterceptorAdapter中执行以下操作,其中isNotValid是您将实现的功能,用于检查您的请求是否有效。

public boolean handleRequest(MessageContext messageContext, Object endpoint) throws Exception {

if(isNotValid(messageContext)){           
    WebServiceMessage responseMsg = messageContext.getResponse();
    SoapMessage soapMsg = (SoapMessage) responseMsg;

    soapMsg.getSoapBody().addClientOrSenderFault("error !", Locale.ENGLISH);

    return false;
} else {
   return true;
}