无法从fault-Message Resolver中抛出CustomException

时间:2016-07-18 20:52:14

标签: spring-integration spring-ws

我在Spring集成网关流程中使用两个webservice出站网关调用两个不同的Web服务。 我在每个网关中实现了2个故障解析器来解决SOAP故障 并且想要创建自定义应用程序异常并从解析器抛出到我的异常处理程序。

每当我们从服务调用接收到SOAP错误时,就会调用我的FaultResolver。 但我无法从我的解析器中抛出自定义权限,因为它只允许我抛出IOException。

由于这个原因,我抛出了一个运行时异常,其中包含来自我的解析程序的消息,并在我的异常处理程序中捕获此运行时异常。 是正确的做法是抛出运行时异常并捕获Handler,还是以其他任何更好的方式来处理这种情况或任何其他实现来处理SOAP Fault并抛出自定义异常。

1 个答案:

答案 0 :(得分:1)

确定您的解决方案是否良好的最佳方法,只是尝试在此问题上找到一些开箱即用的实施方案。其中之一是:

public class SimpleFaultMessageResolver implements FaultMessageResolver {

    public void resolveFault(WebServiceMessage message) {
        if (message instanceof FaultAwareWebServiceMessage) {
            throw new WebServiceFaultException((FaultAwareWebServiceMessage) message);
        }
        else {
            throw new WebServiceFaultException("Message has unknown fault: " + message);
        }
    }
}

其中WebServiceFaultException正好是RuntimeException

所以,我认为你可以继续。