6

RestEasyを使用してRestfulWebサービスを構築しています。特定の例外応答を準備するためにExceptionMappersを実装しました。

また、MessageBodyWriterInterceptorsといくつかのPostProcessorInterceptorsを実装しました。

問題:リソースが例外をスローしない場合、すべてが正常に機能します。私の実装は期待どおりに機能します。すべてのポストプロセッサインターセプターとメッセージボディライターインターセプターが呼び出されます。

ただし、いずれかのリソースメソッドから例外がスローされると、登録されているExceptionMappersが呼び出され、応答が作成されます。ただし、この場合、ポストプロセッサインターセプターチェーンはトラバースされません。彼らは呼ばれていません。

この場合はどうすればよいですか。そのインターセプターロジックを例外マッパーに記述しますか、それとも利用可能なソリューションがありますか?

4

1 に答える 1

11

例外がスローされた場合、ポストプロセッサは呼び出されません。それらは、異なる並列解決パス上にあります。

           /「通常の」JAX-RS応答->ポストプロセッサ->メッセージ本文ライター
処理
           \例外->例外マッパー

ポストプロセッサと例外マッパーの両方で実行する必要のあるロジックがある場合は、両方に組み込む必要があります(できれば、共通のユーティリティクラスを使用して)。

于 2012-12-18T17:46:16.293 に答える