Spring WS:处理连接被拒绝和客户端超时异常
Spring WS: Handle connection refused and client timeout exceptions
我似乎找不到合适的解决方案。我想根据发生的情况处理并向用户显示不同的消息。我正在使用 Spring WS 并调用 marshalSendAndReceive
。在返回的服务方法上,我现在只是 catch (WebServiceIOException e)
,问题是这个异常是由连接被拒绝(错误的凭据)和查询花费的时间超过客户端指定的时间(超时)引发的?是否有任何正确的方法来处理这两个而不提供 "something went wrong".
的一般消息
WebServiceTemplate
在方法 doSendAndReceive
中努力工作,其中有 try...catch
块和全面的错误处理。其中之一是 triggerAfterCompletion(int interceptorIndex, MessageContext messageContext, Exception ex)
,它委托给注入的 ClientInterceptor
。
因此,您只需要正确实施 afterCompletion(MessageContext messageContext, Exception ex)
即可抛出适当的业务异常。
一种方法是实施 ClientInterception
class
另一种方法是捕获一般 Exception
class 向网络服务发送请求的位置:
try {
webServiceTemplate.marshalSendAndReceive(request);
} catch(Exception e){
log.error("your custom message");
}
我似乎找不到合适的解决方案。我想根据发生的情况处理并向用户显示不同的消息。我正在使用 Spring WS 并调用 marshalSendAndReceive
。在返回的服务方法上,我现在只是 catch (WebServiceIOException e)
,问题是这个异常是由连接被拒绝(错误的凭据)和查询花费的时间超过客户端指定的时间(超时)引发的?是否有任何正确的方法来处理这两个而不提供 "something went wrong".
WebServiceTemplate
在方法 doSendAndReceive
中努力工作,其中有 try...catch
块和全面的错误处理。其中之一是 triggerAfterCompletion(int interceptorIndex, MessageContext messageContext, Exception ex)
,它委托给注入的 ClientInterceptor
。
因此,您只需要正确实施 afterCompletion(MessageContext messageContext, Exception ex)
即可抛出适当的业务异常。
一种方法是实施 ClientInterception
class
另一种方法是捕获一般 Exception
class 向网络服务发送请求的位置:
try {
webServiceTemplate.marshalSendAndReceive(request);
} catch(Exception e){
log.error("your custom message");
}