RESTEasy启用GZIP支持?

时间:2017-09-25 23:49:52

标签: java web-services tomcat gzip resteasy

RESTEasy的文档说除了使用" @ GZIP"来注释您的服务器端点之外。注释,你需要创建一个名为" javax.ws.rs.ext.Providers"在运行时环境的类路径中可用,并包含类名" org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor"在文件中。

我已经完成了上述所有操作,但是从服务器返回的响应不会被压缩,即使响应" Content-Encoding"标题是" gzip" (即响应主体是纯文本/ json,不管标题是什么)。

当部署到Tomcat时,javax.ws.rs.ext.Providers文件绝对位于.war和app文件夹中的WEB-INF / classes文件夹中,但RESTEasy忽略了它。

那么,我有什么遗失的东西吗?有没有人有这个工作?

编辑:好的,我发现RESTEasy实际上正在寻找完整的路径" META-INF / services / javax.ws.rs.ext.Providers",所以我必须创建它文件夹路径加上我的资源文件夹中的文件是的,这很令人困惑,因为.war存档中已有一个META-INF文件夹;但是,提供"服务"子文件夹和" javax.ws.rs.ext.Providers"该META-INF文件夹中的文件不起作用。叹息。

1 个答案:

答案 0 :(得分:2)

我得到了它的工作&我希望这能帮助你解决这个问题。诀窍是在WEB-INF / classes中使用它。我所做的是在该位置 javax.ws.rs.ext.Providers / WEB-INF / classes / META-INF /服务 &瞧它开始工作了。

这样做的原因是它在尝试搜索此文件的代码中具有的类加载器引用。我正在使用tomcat。但是,如果您使用的是JBoss或任何其他应用程序/ Web服务器,则类加载机制可能会因容器实现而异。因此,找出哪个是您服务器的最佳位置。