我似乎找不到适当的解决方案。我想根据发生的事情处理并向用户显示不同的消息。我正在使用Spring WS并调用marshalSendAndReceive
。目前,在返回服务方法上,我只是catch (WebServiceIOException e)
,问题是连接被拒绝(错误的凭据)以及查询所花的时间超过了客户端指定的时间(超时),都会引发此异常?是否有任何适当的方式来处理这两个问题,而又没有提供一个普遍的信息,即“出现问题”。
最佳答案
WebServiceTemplate
在doSendAndReceive
方法中进行了艰苦的工作,其中有try...catch
块和全面的错误处理。其中之一是triggerAfterCompletion(int interceptorIndex, MessageContext messageContext, Exception ex)
,它委派给注入的ClientInterceptor
。
因此,您只需要适当地实现afterCompletion(MessageContext messageContext, Exception ex)
即可引发适当的业务异常。