2013-07-24 23 views
7

我正在將Jerset 1.x客戶端項目遷移到澤西島2.0的進展。我發現GZIPContentEncodingFilter不再存在。有類似的東西嗎?什麼是澤西2.0當量的GZIPContentEncodingFilter

我絆了GZIPEncoder但我不知道如何將其插入

在新澤西州1.17我使用:

WebResource r = ... 
r.register(new GZIPContentEncodingFilter()); 

在澤西島2.0我搜索somethink像:

WebTarget r = ... 
r.register(new GZIPContentEncodingFilter()); 
+0

您是否也在服務器端使用球衣2.0?如果是這樣,我可以問一下你是如何得到gzip編碼的? (我已經發布了一個關於這個問題[這裏](http://stackoverflow.com/questions/19751014/gzip-encoding-in-jersey-2)。) – aioobe

+0

嗨,不幸的是在另一邊是一個遺留系統。 –

回答

9

使用

WebTarget r = ... 
r.register(GZIPEncoder.class); 
+0

嘿,我的項目中還有一些錯誤。當我完成並且可以嘗試時,我會接受你的答案。謝謝! –

+1

僅適用於在r.register(EncodingFilter.class)之後執行的作品。澤西單元測試中遇到了相同的調用序列。見https://github.com/jersey/jersey/blob/master/tests/e2e/src/test/java/org/glassfish/jersey/tests/e2e/common/EncodingTest.java – Alfishe

0

使用@GZIP的Anotate方法,它內部使用GZIP編碼器並從web.xml中刪除 GZIPContentEncodingFilter,解決問題

+0

您能否提供一個鏈接到'@ GZIP'? – 2013-07-24 12:42:41

+0

https://jersey.java.net/documentation/latest/user-guide.html#d0e6558 –

+0

我試過resteasy有直接支持http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide /html/gzip.html –

4

大部分的細節可以從新澤西州自己的單元測試來獲得。 所以,以允許響應於使用gzip或deflate algorighms(增加的CPU負載和延遲的成本),應使用被壓縮:在Jersey V2.X編碼單元測試

WebResource r = ... 
r.register(EncodingFilter.class); // Allow to process encodings 
r.register(GZIPEncoder.class); 
r.register(DeflateEncoder.class); 

請參閱配置方法:EncodingTest

0

在澤西2.x的(我用2.26):

WebTarget target = ... 
target.register(GZipEncoder.class); 

我沒有包括EncodingFilter/DeflateEncoder。