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