gpt4 book ai didi

java - SOAPFaultException.getFault().getDetail() 为空

转载 作者:搜寻专家 更新时间:2023-10-31 20:21:43 27 4
gpt4 key购买 nike

我正在使用 JAX WS 2.0 调用 SOAP 网络服务。如果出现错误,我会收到以下响应:

<?xml version="1.0"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap- envelope">
<soap:Header/>
<soap:Body>
<soap:Fault xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap- envelope" xmlns:xml="http://www.w3.org/XML/1998/namespace">
<soap:Code>
<soap:Value>soap:Receiver</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">Exception of type 'blah blah' was thrown.
</soap:Text>
</soap:Reason>
<soap:Node>{SOME URL}</soap:Node>
<detail>
<error>345</error>
<message>Cannot find user. Blah blah</message>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

如您所见,有用的错误在详细信息节点中:

<soap:Envelope>  
<soap:Body>
<soap:Fault>
<detail>

在我的客户端中,我得到一个 SOAPFaultException,它有一个 SOAPFault 对象。 SOAPFault 对象似乎缺少我在上面发布的节点。 SOAPFaultException.getFault().getDetail() 为空。但是,它有所有其他节点,包括 soap:Reason。知道为什么它缺少详细信息节点吗?

谢谢。

最佳答案

事实证明,详细信息节点也需要包含 SOAP 命名空间。所以它需要:

<soap:detail>

由于我无法控制 Web 服务,所以我设法在注入(inject)客户端的自定义 SOAPHandler 的 handleFault 方法中进行了此更改。更改后,故障详细信息不再为空,并具有所有子节点。

基于,http://www.w3.org/TR/soap12-part1/#soapfault ,我相信开发人员需要在故障期间更正响应。

关于java - SOAPFaultException.getFault().getDetail() 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com