什么是泽西2.0相当于GZIPContentEncodingFilter

时间:2013-07-24 12:26:52

标签: java jersey jersey-client jersey-2.0

我正在将Jerset 1.x客户端项目迁移到Jersey 2.0。

我发现GZIPContentEncodingFilter不再存在。有类似的东西吗?

我偶然发现了GZIPEncoder,但我不确定如何将其插入。

在Jersey 1.17中,我使用:

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

在Jersey 2.0中,我搜索了一些想法:

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

4 个答案:

答案 0 :(得分:9)

使用

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

答案 1 :(得分:4)

大部分细节都可以从泽西岛自己的单元测试中获得。 因此,为了允许使用GZip或Deflate算法压缩响应(增加CPU负载和延迟的成本),您应该使用:

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

请参阅Jersey v2.x编码单元测试中的configure方法:EncodingTest

答案 2 :(得分:0)

使用@GZIP的Anotate方法,它在内部使用GZIP编码器并删除 来自web.xml的GZIPContentEncodingFilter解决了问题

答案 3 :(得分:0)

在Jersey 2.x(我使用2.26):

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

我不必包含EncodingFilter / DeflateEncoder。