我們有一個Resteasy webservice。ResteasyJacksonProvider後Resteasy PostProcessInterceptor
我使用傑克遜提供商的JSON,在響應傳出JSON和請求中傳入JSON。
是否有可能在JSON-Jackson序列化後執行PostProcessInterceptor?
我的PostProcessInterceptor必須更改每個傳出響應的JSON內容。但是當PostProcessInterceptor被執行時,如果我打印實體response.getEntity().toString();
,我會看到java.lang.Object的toString方法,而不是JSON字符串。這是因爲該對象還沒有被傑克遜序列化。
是否可以在運行PostProcessInterceptor之前使用Resteasy/Jackson 序列化之前?
我也試着在我的PostProcessInterceptor上使用@Precedence
註解。但它不起作用,即使使用「DECODER」優先級(這是最後一個)。
有什麼想法?提前致謝。
我正在尋找一個攔截器,處理所有傳出的身體響應(不是傳入的請求),這是可能與CDI攔截器?我正在閱讀文檔,這是你對我的建議? http://docs.jboss.org/weld/reference/1.1.5.Final/en-US/html/interceptors.html – thermz 2013-04-12 12:49:05
如果您對Resteasy序列化之前的響應對象感興趣,那麼是的。改變這一點,隨之而來的是JSON。您可以獲取context.proceed()響應Object並將其投射(yikes!)或捕獲即將發生的異常。 如果您需要在所有異常映射程序完成其作業並對實際JSON字符串進行更改之後查看最終結果,那麼您可以嘗試MessageBodyWriterInterceptor。沒有自己做過,所以這只是一個明智的猜測。 – garbelini 2013-04-12 13:48:25
對,我說過「是否可以在JSON-Jackson序列化後執行PostProcessInterceptor?」所以我對響應正文中的JSON字符串感興趣,而不是對象。 所以你的建議是MessageBodyWriterInterceptor。看起來很好的解決方案,我會讓你知道! – thermz 2013-04-12 14:00:01