Webservice-4

SOAP错误
【概念】
SOAP错误消息是SOAP应用程序用于向消息路径中的“上游”节点报告错误的机制。
SOAP错误是由接收方(指消息的中介体或最终接收方)产生的。只有使用了请求/响应消息传递模式时,才要求接收方将SOAP错误传递回发送方。
   在单向消息传递模式中,接收方应该产生一个错误,并可能将其存储到某处,但不必试图将错误传递到发送方。
   要将SOAP错误返回到接收方的直接发送方。比如:如果消息路径中的第三个节点产生了一个错误,那么会将该错误消息传递回消息路径中的第二个节点,并且不会传递到其他对方。也可以这样说,除非初始发送方也是直接发送方,否则不将错误消息传递到初始发送方。
SOAP注释已经承认了SOAP错误处理的重要性,因此,BP提供了用于产生和处理SOAP错误消息的很多方案,下面我们来看具体实例吧。
【Fault元素】
Body元素中包含Fault元素的SOAP消息称为错误消息。错误消息与异常类似,即当错误发生时,就会产生错误消息。在请求/响应消息传递中要使用错误消息。当处理一个请求消息时,消息路径中的节点会产生错误消息。当错误发生时,接收节点会将错误消息传递回上游发送方,而不是期待的应答消息。不正确的消息格式,版本的不匹配,处理文件头时的错误以及与应用程序对应用的错误均会引起错误。
当产生错误消息时,SOAP消息的Body元素必须只能包含一个Fault元素,Fault元素本身又必须包含一个faultcode元素和一个faultstring元素,同时可以包含faultactor和detail元素(后2个可选),下面我们看看3-1例的SOAP错误消息的:
3-1
<?xml version=”1.0” encoding=”UTF-8”>
<soap:Envelope
Xmlns:soap=http://schemas.xmlsoap.org/soap/enevlope
Xmlns:mh=”http://www.Monson-Haefel.com/jwsbook/BookQuote”>
   <soap:Body>
      <soap:Fault>
            <faultcode>soap:Client</faultcode>
                           <faultstring>
                The ISBN value contains invalid characters
</faultstring>
<faultactor>http://www.xxxxxxxxxxxxx.com</faultactor>

<detail>
         <mh:InvalidIsbnFaultDetail>
         <offending-value>198333330</offending-value>
         <conformance-rules>
                 ………………………….
                 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
</conformance-rules>
</mh:InvalidIsbnFaultDetail >
</detail>
.
      </soap:Fault>
   </soap:Body>
</soap:Envelope>
【说明】
Fault元素和它的子元素是SOAP命名空间的部分,就像SOAP的Envelope元素和Body元素的关系一样。
Fault元素可以是非限定元素,也就是说它们可以不使用SOAP前缀来限定Fault元素的子元素。
Fault元素除了可以包含faultcode,faultstring,faultactor,detail元素歪,禁止它包含其他任何直接元素。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值