Spring WS:处理连接被拒绝和客户端超时异常

时间:2015-01-12 08:02:35

标签: java spring web-services

我似乎无法找到适当的解决方案。我想根据发生的事情处理并向用户显示不同的消息。我正在使用Spring WS并调用marshalSendAndReceive。关于返回的服务方法,我只想catch (WebServiceIOException e),问题是Connection拒绝(错误的凭据)和查询花费的时间超过客户端(超时)指定的时间抛出此异常?是否有任何正确的方法来处理这两个问题,而没有提供一些错误信息"出现问题"。

2 个答案:

答案 0 :(得分:3)

WebServiceTemplate在方法doSendAndReceive中努力工作,其中try...catch阻止和全面的错误处理。其中一个是triggerAfterCompletion(int interceptorIndex, MessageContext messageContext, Exception ex),它委托给注入的ClientInterceptor

因此,您只需要正确实施afterCompletion(MessageContext messageContext, Exception ex)以抛出相应的业务异常。

答案 1 :(得分:0)

一种方法是实现ClientInterception

另一种方法是在向Web服务发送请求的地方捕获通用Exception类:

try {
  webServiceTemplate.marshalSendAndReceive(request);
} catch(Exception e){
   log.error("your custom message");
}