响应中的Jax-rs Cache控件头不起作用

问题描述 投票:0回答:1

我正在尝试缓存休息服务的响应,但每次后续请求都会发送到服务器。我不确定代码中缺少什么。我正在使用JAX-RS来设置缓存头。最初我认为这是由于请求中的查询参数,所以我删除了它,但即使在那之后缓存也不起作用。

这就是我写的:

@GET
@Path("/primeNumber")
public Response prime() {
    String number = "3";
    boolean isPrime = true;
    int numberInt = Integer.valueOf(number);
    for (int i = 2; i <= numberInt/2 ; i++) {
        if (numberInt % i == 0) {
            isPrime = false;
            break;
        }
    }

    CacheControl cacheControl = new CacheControl();
    cacheControl.setMaxAge(60000);

    long current = new Date().getTime();
    Date expires = new Date(current + (100 * 1_000));

    return Response.status(Status.OK).entity(isPrime).expires(expires).cacheControl(cacheControl).build();
}

我的响应标题如下:

Response Headers

我已尝试使用Chrome,Firefox和Advanced REST客户端(Chrome扩展程序)进行测试。

java rest caching jax-rs httpresponse
1个回答
0
投票

我能够找出问题。我实现这个的方式没有错,但我通过浏览器刷新测试它,如上所述here,刷新窗口将向服务器发送请求。当我通过链接导航测试相同的代码时,它工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.