java - 区分多个WebServiceExceptions?

标签 java xml web-services exception soap

我有一个外部 API,它可以进行 Web 服务调用,并且可以抛出两个异常,我希望对这两个异常进行不同的处理:

  1. com.sum.xml.internal.ws.client.ClientTransportException - 当 Web 服务服务器不存在时

  2. com.sun.xml.internal.ws.encoding.soap.DeserializationException - 当响应是格式错误的 XML 时

当我尝试显式捕获这些异常时,我的 Ant 编译器显示“包不存在”。在一些论坛上,我读到您不应该在代码中调用 sun 包,而应该捕获 javax.xml.ws.WebServiceException。这确实可以编译,但是我如何区分这两个异常以不同的方式处理它们?

最佳答案

我会这样做:

//...
} catch (WebServiceException e){
    String name = e.getClass().getSimpleName();
    if(name.equals("ClientTransportException")){
        //do what you want
    } else if (name.equals("DeserializationException")){
        //do something else
    }

}

关于java - 区分多个WebServiceExceptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235172/

相关文章:

java - JTextField 中的自定义文本约束

java - 成功登录 google oauth2 时出现重定向错误

xml - 将 Common 与 XML 相互转换

java - 从 Spring WS 拦截器获取请求参数

java - 将焦点设置在 WebElement 上?

xml - 为什么 IXMLNode.IsTextElement 不为 CDATA 元素返回 True?

xml - 在 NodeJS 中根据模式 (xsd) 验证 XML

.net - 如何从.Net Web服务返回数据表?

java - 使用 JiBX 的 Spring Web 服务

java - 使用其他类中的变量是否比使用同一类中的变量慢?