58.3. エラー後の巻き戻し


概要

インターセプターチェーンの実行中にエラーが発生した場合、ランタイムはインターセプターチェーンのトラバースを停止し、すでに実行されたチェーンでインターセプターの handleFault() メソッドを呼び出すことでチェーンをアンワインドします。

handleFault() メソッドを使用して、通常のメッセージ処理中にインターセプターによって使用されるすべてのリソースをクリーンアップできます。また、メッセージ処理が正常に完了した場合にのみ有効なアクションをロールバックするために使用することもできます。障害メッセージがアウトバウンド障害処理のインターセプターチェーンに渡される場合、handleFault() メソッドを使用して情報を障害メッセージに追加することもできます。

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

handleFault() メソッドは、通常のメッセージ処理で使用される handleMessage() メソッドと同じ Message オブジェクトを受け取ります。Message オブジェクトからメッセージコンテンツを取得する方法は、「メッセージコンテンツの取得」 で説明します。

例58.5「巻き戻しインターセプターチェーンの処理」 は、インターセプターチェーンが巻き戻しされるときに、元の XML ストリームがメッセージに確実に戻るようにするために使用されるコードです。

例58.5 巻き戻しインターセプターチェーンの処理

@Override
public void handleFault(SoapMessage message)
{
  super.handleFault(message);
  XMLStreamWriter writer = (XMLStreamWriter)message.get(ORIGINAL_XML_WRITER);
  if (writer != null)
  {
    message.setContent(XMLStreamWriter.class, writer);
  }
}
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.