2016-07-18 58 views
1

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

无论何时我们接收到来自服务调用的SOAP错误,我的FaultResolver都会被调用。 但我无法从我的解析器中抛出自定义的excel,因为它只允许抛出IOException。

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

回答

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

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

+0

是的感谢信息@Artem让我走我的实施 – springbootlearner

相关问题