9

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

我发现它GZIPContentEncodingFilter已经不存在了。有没有类似的东西?

我跌跌撞撞,GZIPEncoder但不知道如何插入。

在泽西岛 1.17 中,我使用:

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

在 Jersey 2.0 中,我搜索如下内容:

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

4 回答 4

9

采用

WebTarget r = ...
r.register(GZIPEncoder.class);
于 2013-07-24T12:49:30.470 回答
4

大多数细节可以从 Jersey 自己的单元测试中获得。因此,要允许使用 GZip 或 Deflate 算法压缩响应(以增加 CPU 负载和延迟为代价),您应该使用:

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

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

于 2014-05-05T17:37:47.673 回答
1

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

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

我不必包括 EncodingFilter/DeflateEncoder。

于 2017-12-06T04:44:13.497 回答
0

使用 @GZIP 注释方法,它内部使用 GZIP 编码器并从解决问题的 web.xml 中删除 GZIPContentEncodingFilter

于 2013-07-24T12:40:53.527 回答