Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
SOAPアダプタでのSOAP Faultの扱いと,フォルトとして扱う場合の注意事項について説明します。
SOAPアダプタでは,サービス部品から返されたSOAP Faultが次に示す条件をすべて満たす場合,フォルトとして扱われます。
このようなフォルトをユーザ定義例外と呼びます。ユーザ定義例外は,ビジネスプロセスでも認識されるため,フォルト発生後のプロセスの場合分け処理を定義できます。
サービス部品の種類によっては,WSDLに定義されていないSOAP Faultが返されたり,faultCodeに任意の値が設定されてSOAP Faultが返されたりすることがあります。このようなSOAP Faultをフォルトとして扱いたいときは,SOAP Fault動作定義ファイルを使用することで,サービス部品から返されるすべてのSOAP Faultをフォルトとして扱うことができるようになります。
SOAP Fault動作定義ファイルには,サービス部品のWSDLに宣言されている名前空間(targetNamespaceのURI)を定義します。SOAP Fault動作定義ファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「SOAP Fault動作定義ファイル」を参照してください。
個々のサービスアダプタには,WSDLでサービス部品のインターフェースが定義されており,WSDLに定義されている名前空間が,SOAP Fault動作定義ファイルに定義されている内容と一致するかどうかで,フォルトとして扱うかどうかを判断します。
SOAP Fault動作定義ファイルを使用したときのSOAP Faultの扱いを次の図に示します。
図4-6 SOAP Fault動作定義ファイルを使用したときのSOAP Faultの扱い
サービス部品から返されたSOAP Faultでは,次の条件をすべて満たす場合にフォルト名がfaultCodeに設定され,フォルトとして扱われます。
これらの条件を満たしていないWSDLを利用する場合で,サービス部品から返されたSOAP Faultをフォルトとして扱いたいときは,SOAP Fault動作定義ファイルを定義してユーザ定義例外となるように設定します。
なお,サービスプラットフォームの開発支援コマンドであるJava2WSDLコマンドを使用して,オペレーションのstyle属性が「rpc」のWSDLファイルを生成した場合,element属性ではなく,type属性で参照するWSDLファイルが生成されます。そのため,生成されたWSDLファイルをそのまま使用しないで,修正および再生成してから使用します。WSDLファイルの修正および再生成の方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「4.3.2 サービス部品電文を作成する(Webサービスの場合)」を参照してください。
サービスプラットフォームでフォルトを使用する場合,documentスタイルのWSDLを使用することを推奨します。
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.