差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:web:resteasy:fetch_raw_message [2018/07/01 22:55]
tony
java:web:resteasy:fetch_raw_message [2023/06/25 09:48] (目前版本)
行 6: 行 6:
 javax.ws.rs.ProcessingException:​ RESTEASY003145:​ Unable to find a MessageBodyReader of content-type text/​html;​charset=iso-8859-1 javax.ws.rs.ProcessingException:​ RESTEASY003145:​ Unable to find a MessageBodyReader of content-type text/​html;​charset=iso-8859-1
 </​code>​ </​code>​
-我有幸遇到這樣的問題,也讓我思考著該如何將原始資料記錄下來以回報第三方服務提供者。本篇文章分享可能的作法,可依照你的需求自行挑選。+我有幸遇到這樣的問題,也讓我思考著該如何將原始資料記錄下來以回報第三方服務提供者。本篇文章分享可能的作法,可依照你的需求自行挑選。\\ 
 +\\ 
 +(完整程式內容可以從github上clone:​ [[https://​github.com/​frank007love/​ResteasyPractice|link]])
 ===== How to resolve? ===== ===== How to resolve? =====
 ==== ReadInterceptor & InputStreamSniffer ==== ==== ReadInterceptor & InputStreamSniffer ====
行 94: 行 96:
 這個方法是可以解決目前遇到的問題,但缺點是每次請求都一定會多處理一次內容。於是我把腦筋動到了MessageBodyReader身上。 這個方法是可以解決目前遇到的問題,但缺點是每次請求都一定會多處理一次內容。於是我把腦筋動到了MessageBodyReader身上。
 ==== Customized MessageBodyReader ==== ==== Customized MessageBodyReader ====
-我新增一個名為CompositeMessageBodyProvider的類別,去extend ​MessageBodyReader;isReadable永遠回傳true,將搜尋合適MessageBodyReader動作交由readFrom處理,如果找不到就丟ProcessingException上去。Client可以攔截此例外決定要處理的方式:​+我新增一個名為CompositeMessageBodyProvider的類別,去implement ​MessageBodyReader;isReadable永遠回傳true,將搜尋合適MessageBodyReader動作交由readFrom處理,如果找不到就丟ProcessingException上去。Client可以攔截此例外決定要處理的方式:​
 <code java> <code java>
 @Provider @Provider