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>