23.4.4. HTTP 応答への例外のマップ


JAX-RS 仕様の 3.3.4 項では、JAX RS がチェック例外と非チェック例外を処理する方法について定義しています。Seam と RESTEasy を統合することで、Seam の pages.xml 内の HTTP 応答コードに例外をマップすることが可能です。pages.xml をすでに使用している場合は、これは多くの JAX RS 例外のマッパークラスよりも維持し易いです。
Seam 内で処理される例外については、Seam フィルタは HTTP 要求に対し実行する必要があります。REST 要求を扱わない要求 URI パターンとして ではなくweb.xml のすべての要求をフィルタする必要があります。次のサンプルはすべての HTTP 要求をインターセプトし、Seam 例外処理を有効にします。
<filter>
    <filter-name>Seam Filter</filter-name>
    <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>Seam Filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Copy to Clipboard Toggle word wrap
リソースメソッドで投げられた非チェック例外 UnsupportedOperationException501 Not Implemented HTTP ステータス応答に変換するには、次を pages.xml 記述子に追加します。
<exception class="java.lang.UnsupportedOperationException">
    <http-error error-code="501">
        <message>The requested operation is not supported</message>
    </http-error>
</exception>
Copy to Clipboard Toggle word wrap
カスタム例外またはチェック例外は同じように処理されます。
<exception class="my.CustomException" log="false">
    <http-error error-code="503">
        <message>Service not available: #{org.jboss.seam.handledException.message}</message>
    </http-error>
</exception>
Copy to Clipboard Toggle word wrap
例外が発生した場合 HTTP エラーをクライアントに送る必要はありません。Seam により リダイレクトとして例外を Seam アプリケーションのビューにマップすることが可能です。この機能は通常、REST API リモートクライアントではなく人間のクライアント (Web ブラウザ) に対して使用されるため、pages.xml の競合する例外マッピングに注意する必要があります。
HTTP レスポンスはサーブレットコンテナを通るため、web.xml 設定に <error-page> マッピングがある場合は、追加のマッピングを適用することが可能です。次に HTTP ステータスコードは 200 OK のステータスを持つレンダリングされた HTML エラーページにマップされます。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat