【发布时间】:2016-05-07 22:45:48
【问题描述】:
我正在尝试将 Cache-Control 标头添加到使用 RESTEasy 框架在 JBoss 7 中生成的响应中。但是,由于 JBoss 默认添加了 no-cache 标头,所有响应最终都会获得多个 Cache-Control 标头。
我找不到任何设置来删除它,并且添加拦截器也不起作用,因为稍后会添加无缓存标头。
谁能告诉我如何禁用 JBoss 7 中的默认编译指示和缓存控制标头?
注意:我正在使用带有无状态 EJB 的 resteasy。
@Path("/api")
@Local
public interface UCSRestServiceInterface
{
@GET
@Path("/token")
@Produces("application/json")
@Cache(maxAge = 3600, noTransform = true)
public Response getToken();
}
获取响应标头为,
{
"pragma": "No-cache",
"date": "Thu, 11 Feb 2016 20:16:30 GMT",
"content-encoding": "gzip",
"server": "Apache-Coyote/1.1",
"x-frame-options": "SAMEORIGIN",
"vary": "Accept-Encoding,User-Agent",
"content-type": "application/json",
"cache-control": "no-cache, no-transform, max-age=3600",
"transfer-encoding": "chunked",
"connection": "Keep-Alive",
"keep-alive": "timeout=15, max=100",
"expires": "Wed, 31 Dec 1969 19:00:00 EST"
}
【问题讨论】:
-
写一个过滤器。接受回应;并操作你想要的标题。
-
我对 wildfly 10 也有同样的问题(在 wildfly 8 中也似乎是这样),响应标头中总是存在以下内容:“Cache-Control: no-cache ,无商店,必须重新验证”。添加@Cache 注释只是添加了第二个标头字段。这不可能是正确的行为!你找到解决这个问题的方法了吗?
标签: jboss jax-rs jboss7.x resteasy cache-control