Spring-WS:将SOAP错误转换为特定异常

时间:2012-09-07 13:41:47

标签: web-services spring-ws

当使用Spring-WS作为SOAP客户端时,我很难将传入的错误转换为特定的Java Exceptions。

例如,如果我正在调用的Web服务操作可以返回ClientNotFoundFault并且假设是InvalidAmountFault,那么我可以使Spring-WS抛出ClientNotFoundException或InvalidAmountException吗?

Spring-WS可以抛出与SoapFaultClientException不同的东西吗?

在我自己编写Web服务时,我可以反过来这样做。在那里,使用SoapFaultMappingExceptionResolver,我可以轻松地将异常转换为它们的等效错误。在写客户端时,我找不到任何关于这样做的事情......

我正在使用Spring-WS 2.1.0.RELEASE和JDK 1.7.6

谢谢,如果我不够清楚,或者您需要一些代码示例,请告诉我。

1 个答案:

答案 0 :(得分:0)

客户端没有等效的解析器。解析器界面已准备好让某人编写类似的映射器。应该非常直接地保存故障代码与异常类的映射。

请参阅org.springframework.ws.client.core.FaultMessageResolver

这是由SoapFaultMessageResolver实现的,它只是将故障消息包装在您看到的SoapFaultClientException中。