我正在寻找一些方法来响应SOAP请求的SOAP故障。
现在我只能在通过AbstractEndpointExceptionResolver
抛出异常时创建一个错误。
我查看了EndpointInterceptorAdapter
,但我不确定如何检查或修改响应。例如,如果端点返回ValidResponse
但是在响应的列表中没有找到或返回值,我想用SoapFault
来响应用户请求。
我们努力遵循"不要使用流量控制的例外"但是我从拦截器或端点创建SoapFault
而没有抛出异常就没有成功。
答案 0 :(得分:2)
好吧,我认为AbstractValidatingInterceptor
来救援。至少从源代码部分:如何处理interceptor
的响应以及如何处理WebServiceMessage response
。
请注意,WebServiceMessage
可以投放到SoapMessage
,您可以使用SoapFault
填充自定义SoapBody
:
SoapBody soapBody = ((SoapMessage) messageContext.getResponse()).getSoapBody();