43.7. 障害メッセージの処理


概要

ハンドラーは、メッセージの処理中に ProtocolException 例外が出力されると、障害メッセージを処理するために handleFault() メソッドを使用します。

handleFault() メソッドは、ハンドラーの型に応じて LogicalMessageContext オブジェクトまたは SOAPMessageContext オブジェクトのいずれかを受け取ります。受信したコンテキストは、ハンドラーの実装にメッセージペイロードへのアクセスを提供します。

障害メッセージ処理の継続方法に応じて、handleFault() メソッドは true または false のいずれかを返します。例外を出力することもできます。

メッセージペイロードの取得

handleFault() メソッドで受信されるコンテキストオブジェクトは、handleMessage() メソッドによって受信されるものに似ています。コンテキストの getMessage() メソッドを使用して、同じ方法でメッセージペイロードにアクセスします。唯一の違いは、コンテキストに含まれるペイロードです。

LogicalMessageContext の操作の詳細は、「論理ハンドラーでのメッセージの処理」を参照してください。

SOAPMessageContext の操作の詳細は、「SOAP ハンドラーでのメッセージの処理」を参照してください。

戻り値の決定

handleFault() メソッドがそのメッセージ処理をどのように完了するかが、メッセージ処理の実施方法に直接的な影響を及ぼします。次のいずれかのアクションを実行することで完了します。

true を返す
障害処理が正常に続行される必要があることを示す真のシグナルを返します。チェーンの次のハンドラーの handleFault() メソッドが呼び出されます。
false を返します
障害処理が停止したという false シグナルを返します。現在のメッセージの処理で呼び出されたハンドラーの close() メソッドが呼び出され、障害メッセージがディスパッチされます。
例外を出力する
例外を出力すると、障害メッセージの処理が停止します。現在のメッセージの処理で呼び出されたハンドラーの close() メソッドが呼び出され、例外がディスパッチされます。

例43.13「メッセージハンドラーでの障害の処理」に、メッセージのボディーを画面に出力する handleFault() の実装を示します。

例43.13 メッセージハンドラーでの障害の処理

public final boolean handleFault(LogicalMessageContext messageContext)
{
  System.out.println("handleFault() called with message:");

  LogicalMessage msg=messageContext.getMessage();
  System.out.println(msg.getPayload());

  return true;
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.