所以我从 Spring-ws 2 开始,我正在尝试处理包含标题和正文的请求。现在我想确保标头包含某个变量,所以我实现了一个成功输入的 EndpointInterceptorAdapter。
但是,当它不存在时,我会返回 false 并且不会调用我的实际端点,这是我所期望的。但是我仍然想向用户发送一个非空响应。有没有办法实现这一点,或者如果我想实现这一点,我应该只检查端点中的标头吗?
您可以在 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;
}