2012-12-18 62 views
6

我正在使用RestEasy來構建我的Restful Web服務。我已經實現了ExceptionMapper來準備特定的異常響應。當ExceptionMapper創建響應時,RestEasy Post Process Interceptor鏈沒有被遍歷

我也實現了MessageBodyWriterInterceptors和幾個PostProcessorInterceptors。

Issue:當任何資源沒有拋出任何異常時,所有工作都正常。我的實現按預期工作。所有的後置處理器攔截器和消息體攔截器都被調用。

但是,當從任何資源方法拋出異常時,將調用已註冊的ExceptionMappers,並且它正在創建響應。但在這種情況下,後處理器攔截器鏈沒有被遍歷。他們沒有被召喚。

在這種情況下應該怎麼做。在我的異常映射程序中寫入攔截器邏輯,還是有解決方案可用?

回答

11

如果引發異常,則不會調用後置處理器。他們是不同的,平行的解決途徑:

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

如果您有需要在您的文章的處理器和異常映射器既要運行的邏輯,那麼你需要將其納入兩個(最好是通過一個共同的,實用工具類)。

+0

感謝您的回覆。將使用普通實用程序類實現邏輯 – Bhaskar

+0

沒問題。隨時接受我的答案,如果它幫助你。祝好運與其餘的項目。 – Perception