SOAP Web サービス フォールトの定義

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SOAP Web サービスの実装 >

SOAP Web サービス フォールトの定義

WSDL ファイルはフォールト メッセージを含むオペレーションとメッセージ属性のために fault 要素を含むことができます。同様に SOAP Web サービスを MapForce 内でデザインする際、「フォールト」コンポーネントをマッピングに追加することができます。Web サービスが特定の条件を満たすと例外がスローされます。

 

マッピングにフォールトコンポーネントを挿入するには、fault 要素が WSDL ファイル内に存在する必要があります。

 

マッピング内の例外の条件を定義することができ、エラーメッセージのテキストを設定することができます。条件が満たされると、 Web サービスは以下のようにエラーを表示します:

 

実際の環境では (Web サービスがサーバーにデプロイされた後の実行時に) Web サービスは失敗し、カスタム定義 メッセージを呼び出し元にを返します。
(デザイン時に) MapForce 内で、 マッピングの実行が中止され、「メッセージ」 ウィンドウ内でメッセージを確認することができます。

 

 

MapForce マッピングにフォールトコンポーネントを追加する方法:

1.「挿入」 メニューから「例外」をクリックします。(または、「例外」 ic-component_exception ツールバーボタンをクリックします)。
2.「WSDL-fault の作成」 を選択します

mff_soap_add_fault

メモ: 「WSDL-fault の作成」オプションが無効化されている場合、「オペレーションにエラーはありません」が表示されます。これは WSDL ファイル内にフォールトが存在せず、結果 MapForce に追加できないことを意味します。

 

Web サービスフォールトを含むマッピングの例に関しては、次のサンプル MapForce プロジェクトを開いてください: <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\TimeService\TimeService.mfp。 マッピング (オペレーション) getTimeZoneTime.mfd をダブルクリックしてください。

mff_soap_fault

 

上のマッピングでは、 n0:timezone が UTC に等しくない場合、例外がトリガーされます。

 

equal 関数はフィルターにパスされたブールの値の結果を使用してタイムゾーンが UTC と等しいかチェックします。
条件が false の場合、例えば、 UTC とは異なる値の場合、フィルターの on-false パラメーターが フォールト:errorSoapOut 例外 を有効化し、マッピングプロセスは中断されます (例外を on-true パラメーターに接続することもできます)。
SoapFault メッセージにより2つのセットのエラーテキストが提供されます。

 

サンプル内では、フィルターの配置が重要です:

 

フィルターコンポーネントの両方のパラメーター on-trueon-false がマップされる必要があります。パラメーターの1つがフォールトコンポーネントにマップされる必要があり、フィルターされたソースデータを受け取るターゲットコンポーネントにもう1つが接続される必要があります。それ以外の場合、フォールトコンポーネントはトリガーされません。
例外とターゲットコンポーネントはフィルターコンポーネントに直接接続される必要があります。関数または他のコンポーネントはフィルターと例外、または、コンポーネントの間に配置されない場合があります。

(C) 2019 Altova GmbH