【问题标题】:No-Cache set for jersey header response, but persisted data not returned为球衣头响应设置了无缓存,但未返回持久数据
【发布时间】:2014-09-30 20:27:02
【问题描述】:

我有一个球衣客户端返回 json 响应。我在所有球衣响应中都非常粗略地设置了一个无缓存标头。但是,当我进行更改时,当我看到数据库中的更改时……当我测试原始的 rest url 时,除非我重新启动应用程序服务器(Tomcat),否则我保留的数据不会返回。

我使用 ContainerResponseFilter 设置了无缓存。

public class HeaderResponseFilter implements ContainerResponseFilter {

        public void filter(ContainerRequestContext request, ContainerResponseContext response) {
            MediaType type = response.getMediaType();
            if (type != null) {
                String contentType = type.toString();
                if (!contentType.contains("charset")) {
                    contentType = contentType + ";charset=utf-8";
                    response.getHeaders().putSingle("Content-Type", contentType);
                    response.getHeaders().putSingle("Cache-Control", "no-cache");
                }
            }
        }
}

我在 chrome 中看到 no-cache 设置为标题:

Cache-Control:no-cache
Content-Length:1986
Content-Type:application/json;charset=utf-8
Date:Tue, 30 Sep 2014 20:22:02 GMT
Server:Apache-Coyote/1.1

重新启动应用服务器..瞧,根据持久化的数据库记录,它就在那里。

我正在使用带有 Restangular 的 angularjs,并没有明确地通过 Angular/Restangular 在客户端上设置任何缓存策略......目前不知道如何。

它与 angular/restangular 无关,因为绕过它并直接进入其余端点,我看不到 Oracle 中保留了什么。它与浏览器中的本地缓存无关,因为当我在 IE 和 Chrome 中尝试原始 URL 时,我也看不到它。

---更新--- 已经创建了一个 @NoCache 注释来尝试这种方法,并且在我正在设置的客户端中:

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="no-cache">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">

但是我不能禁用缓存!!帮助....

任何帮助表示赞赏。

问候

我

【问题讨论】:

    标签: angularjs caching jersey restangular


    【解决方案1】:

    似乎它在我的 JPA 层中缓存......

    只有一个小应用程序,所以正在禁用 EclipseLink 共享缓存...现在它正在工作。

    <persistence-unit name="xp-jpa" transaction-type="RESOURCE_LOCAL">        
            <shared-cache-mode>NONE</shared-cache-mode>      
    

    【讨论】:

      猜你喜欢
      • 2017-08-10
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      相关资源
      最近更新 更多