开发学院

您的位置:首页>教程>正文

教程正文

SOAP Fault元素

SOAP Fault元素

  如果在处理过程中发生错误,对SOAP消息的响应是消息体中的一个SOAP Fault元素,并且故障返回到SOAP消息的发送者。SOAP故障机制返回有关错误的特定信息,包括预定义的代码、描述和生成故障的SOAP处理器的地址。


注意事项

下面提到了关于SOAP Fault元素要注意的几个要点:

SOAP消息只能承载一个Fault块。

Fault是SOAP消息的可选部分。

对于http绑定,成功的响应链接到200到299的状态代码范围。

SOAP错误链接到500到599范围的状态代码。


Fault子元素

SOAP Fault具有以下子元素:

<faultCode>:错误代码。相关的说明请参见下一个段落。

<faultString>:用来解释错误的文本消息

<faultActor>:导致错误的Actor

<detail>:错误的详细信息。


SOAP Fault码

在描述故障时,必须在SOAP Fault元素中使用定义的Fault Code值。

SOAP-ENV:VersionMismatch-发现一个无效SOAP Envelope元素命名空间。

SOAP-ENV:MustUnderstand-Header元素的子元素,无法理解的MustUnderstand属性。

SOAP-ENV:Client-客户端消息有问题.

SOAP-ENV:Server-服务器出现问题。


SOAP Fault实例

  以下代码是示例故障,客户端请求了一个名为ValidateCreditCard,的方法,但服务不支持这种方法。这表示客户端请求错误,服务器返回以下SOAP响应:

<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode>
         <faultstring xsi:type="xsd:string">
            Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at /usr/local/ActivePerl-5.6/lib/site_perl/5.6.0/SOAP/Lite.pm line 1555.
         </faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>