2012-12-18 9 views
6

私はRestEasyを使用してRestful Webサービスを構築しています。特定の例外応答を準備するためにExceptionMappersを実装しました。RestEasy Post Process ExceptionMapperによってレスポンスが生成されたときにインターセプタチェーンがトラバースされない

私はMessageBodyWriterInterceptorsといくつかのPostProcessorInterceptorsも実装しました。

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

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

この場合、どうすればよいですか。そのインターセプタロジックを例外マッパーに書き込むか、または解決策がありますか?

答えて

11

例外がスローされた場合、ポストプロセッサは呼び出されません。彼らは別の、パラレル解像度パス上にある:

 
     /'Normal' JAX-RS response -> Post Processors -> Message Body Writers 
Processing 
      \ Exception -> Exception Mappers 

あなたのポストプロセッサと例外マッパーの両方で実行する必要のあるロジックを持っているなら、あなたは、好ましくは、共通の、ユーティリティクラスを介して(両方でそれを組み込む必要があります)。

+0

ご返信ありがとうございます。共通のユーティリティクラスを使用してロジックを実装します – Bhaskar

+0

問題ありません。それがあなたを助けたら私の答えを受け入れるように自由に感じてください。プロジェクトの残りの部分には幸運があります。 – Perception

関連する問題