Soap-fault

提供:Dev Guides
移動先:案内検索

SOAP-障害

処理中にエラーが発生した場合、SOAPメッセージへの応答はメッセージ本文のSOAPエラー要素であり、エラーはSOAPメッセージの送信者に返されます。

SOAPエラーメカニズムは、エラーを生成したSOAPプロセッサの定義済みコード、説明、アドレスなど、エラーに関する特定の情報を返します。

注意点

  • SOAPメッセージには、1つの障害ブロックのみを含めることができます。
  • 障害は、SOAPメッセージのオプション部分です。
  • HTTPバインディングの場合、成功した応答はステータスコードの200〜299の範囲にリンクされます。 *SOAP Faultは、ステータスコードの500〜599の範囲にリンクされています。

障害のサブ要素

SOAP障害には、次のサブ要素があります-

Sr.No Sub-element & Description
1
  • <faultCode>*

これは、エラーのクラスを示すために使用されるテキストコードです。 事前定義された障害コードのリストについては、次の表を参照してください。

2

<faultString>

エラーを説明するテキストメッセージです。

3

<faultActor>

誰が障害を引き起こしたかを示すテキスト文字列です。 SOAPメッセージがSOAPメッセージパス内のいくつかのノードを通過し、クライアントがエラーの原因となったノードを知る必要がある場合に役立ちます。 最終的な宛先として機能しないノードには、_faultActor_要素を含める必要があります。

4

<detail>

これは、アプリケーション固有のエラーメッセージを伝えるために使用される要素です。 詳細要素には、詳細エントリと呼ばれる子要素を含めることができます。

SOAP障害コード

以下に定義されているfaultCode値は、_faultcode_要素で障害の説明中に使用する必要があります。

Sr.No Error & Description
1

SOAP-ENV:VersionMismatch

SOAP Envelope要素の無効なネームスペースが見つかりました。

2

SOAP-ENV:MustUnderstand

mustUnderstand属性が「1」に設定された、Header要素の直接の子要素が理解されませんでした。

3

SOAP-ENV:Client

メッセージの形式が正しくないか、誤った情報が含まれていました。

4

SOAP-ENV:Server

サーバーに問題があったため、メッセージを続行できませんでした。

SOAP障害の例

次のコードはサンプルフォールトです。 クライアントは_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>