我正在尝试缓存其余服务的响应,但是在每个后续请求中,请求都被发送到服务器。我不确定代码中缺少什么。我正在使用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();
}
和我的响应标题如下:
我已经尝试过使用Chrome,Firefox和Advanced REST客户端(Chrome扩展程序)进行测试。
答案 0 :(得分:0)
我能够找出问题所在。实现的方式没有问题,但是我正在通过浏览器刷新对其进行测试,并且如here所述,刷新窗口将向服务器发送请求。当我通过链接导航测试相同的代码时,效果很好。