首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SOAPFault中设置faultCode?

如何在SOAPFault中设置faultCode?
EN

Stack Overflow用户
提问于 2012-09-24 03:39:40
回答 2查看 14.8K关注 0票数 8

为什么可以设置faulString,但不能在SOAPFault中设置自定义故障码?当我抛出异常时,文本"Code X“不会出现在SoapFaultException中。有人能告诉我为什么吗?谢谢。

代码语言:javascript
复制
SOAPFault soapFault = SOAPFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL).createFault();
soapFault.setFaultString("String Y")
soapFault.setFaultCode("Code X");

throw new SOAPFaultException(soapFault);
EN

回答 2

Stack Overflow用户

发布于 2017-03-09 00:36:18

可以通过以下示例获取soap响应中的故障代码:

代码语言:javascript
复制
String faultString = "String Y";
String faultCodeValue = "Code X";
QName faultCode = new QName("nameSpaceURI", faultCodeValue);
SOAPFault soapFault = null;
try {
    soapFault = SOAPFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL).createFault(faultString, faultCode);
    throw new javax.xml.ws.soap.SOAPFaultException(soapFault);
} catch (SOAPException e1) {
    //
}

我得到了以下soap错误:

代码语言:javascript
复制
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope" xmlns="">
        <faultcode xmlns:ns0="nameSpaceURI">ns0:Code X</faultcode>
        <faultstring>String Y</faultstring>
        </S:Fault>
    </S:Body>
</S:Envelope>
票数 6
EN

Stack Overflow用户

发布于 2012-09-24 21:54:37

来自documentation

故障代码是在SOAP1.1规范中定义的,它提供了有关故障的信息。此元素在SOAP1.1中是必需的。因为故障代码必须是名称,所以最好使用此方法的setFaultCode( QName )形式。

faultCode -给出要设置的故障代码的String。它的格式必须是在命名空间声明中定义了前缀的"prefix:localName"

请注意,您设置的故障代码必须是这样的格式:prefix:localName。您正在设置:Code X,这就是为什么您看不到它的原因。使用this方法,一切都会好的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12555641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档