微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

spring&web服务客户端 – 故障详细信息

我如何获得SoapFaultClientException发送的故障详细信息?
我使用webservicetemplate,如下所示:

webservicetemplate ws = new webservicetemplate();
ws.setMarshaller(client.getMarshaller());
ws.setUnmarshaller(client.getUnMarshaller());
try {
    MyResponse resp = (MyResponse) = ws.marshalSendAndReceive(WS_URI,req);
} catch (SoapFaultClientException e) {
     SoapFault fault =  e.getSoapFault();
     SoapFaultDetail details = e.getSoapFault().getFaultDetail();
      //details always NULL ? Bug?
}

发送的Web服务错误似乎是正确的:

NowN

谢谢

Willome

最佳答案
我还遇到了getFaultDetail()返回null(对于SharePoint Web服务)的问题.我可以通过使用类似于此的方法获取detail元素:

private Element getDetail(SoapFaultClientException e) throws TransformerException {
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    Domresult result = new Domresult();
    transformer.transform(e.getSoapFault().getSource(),result);
    NodeList nl = ((Document)result.getNode()).getElementsByTagName("detail");
    return (Element)nl.item(0);
}

之后,您可以在返回的Element或任何您想要的内容调用getTextContent().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐