【发布时间】:2018-03-07 01:07:10
【问题描述】:
RESTEasy 的文档说,除了使用“@GZIP”注释来注释服务器端点之外,您还需要在运行时环境的类路径中创建一个名为“javax.ws.rs.ext.Providers”的文件并在文件中包含类名“org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor”。
我已经完成了上述所有操作,但是从服务器返回的响应没有被压缩,即使响应“Content-Encoding”标头是“gzip”(即响应正文是纯文本/json,尽管标题说什么)。
javax.ws.rs.ext.Providers 文件肯定在我的 .war 中的 WEB-INF/classes 文件夹中,并且在部署到 Tomcat 时位于 app 文件夹中,但 RESTEasy 忽略了它。
那么,我有什么遗漏吗?有人有这个工作吗?
编辑:好的,我发现 RESTEasy 实际上正在寻找完整路径“META-INF/services/javax.ws.rs.ext.Providers”,所以我必须创建该文件夹路径和文件我的资源文件夹。是的,这很令人困惑,因为 .war 存档中已经有一个 META-INF 文件夹;但是,将“服务”子文件夹和“javax.ws.rs.ext.Providers”文件放在该 META-INF 文件夹中不起作用。叹气。
【问题讨论】:
-
您是否使用数据包嗅探器确定未压缩?
-
是的,我使用 TCPMon 检查流量并确定流量是未压缩的 JSON,尽管 HTTP 标头声称它是 gzip。
标签: java web-services tomcat gzip resteasy