第二十二章 SOAP 错误处理 - SOAP 1.1 故障

45 阅读1分钟

第二十二章 SOAP 错误处理 - SOAP 1.1 故障

SOAP 1.1 故障

本节提供有关 %SOAP.Fault的信息,该信息表示 SOAP 1.1 错误。本节包括以下内容:

  • SOAP 1.1 错误示例
  • 有关 %SOAP.Fault 的信息,代表 SOAP 1.1 错误

SOAP 错误示例

作为参考,这里有一个 SOAP 1.1 错误的示例,其中包括 SOAP 信封:

<SOAP-ENV:Envelope 
xmlns:SOAP-ENV='https://schemas.xmlsoap.org/soap/envelope/' 
xmlns:xsi='https://www.w3.org/2001/XMLSchema-instance' 
xmlns:s='https://www.w3.org/2001/XMLSchema' 
xmlns:flt="https://myfault.org" >
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>Division error</faultstring>
      <detail><mymessage>Division error detail</mymessage></detail>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

%SOAP.Fault 属性

SOAP 1.1 故障表示为 %SOAP.Fault的一个实例,它具有以下属性:

detail

SOAP 故障的 <detail> 元素中使用。使用它来指定有关故障原因的信息。

如果指定,此参数应为包含可在 <detail> 元素内使用的有效 XML 的字符串。不会验证提供的字符串是否有效;检查这一点是您的应用程序的责任。

faultcode

SOAP 错误的 <faultcode> 元素中使用。将此属性设置为 SOAP 错误代码的宏中列出的 SOAP 1.1 宏之一。

faultstring

SOAP 错误的 <faultstring> 元素中使用。指定一个字符串来指示错误的原因,以便用户查看。

faultactor

指定导致故障发生的 SOAP 消息路径上的 SOAP 节点的 URI

如果 SOAP 消息经过 SOAP 消息路径中的多个节点,并且客户端需要知道哪个节点导致错误,则此功能非常有用。讨论这个高级主题超出了本文档的范围。

faultPrefixDefinition

指定添加到 SOAP 错误信封的命名空间前缀声明。使用以下格式的值:

xmlns:prefix="namespace"

其中 prefix 是前缀,namespace 是命名空间 URI

 set fault.faultPrefixDefinition = "xmlns:FLT=""https://myfault.com"""

类中的 %SOAP.Fault还提供了 AsString() 方法,该方法以字符串形式返回故障对象。