gpt4 book ai didi

java - JAX-RS( Jersey )Web 服务中的请求服务计数器未增加

转载 作者:行者123 更新时间:2023-12-02 06:19:19 24 4
gpt4 key购买 nike

免责声明:这只是我正在运行的一个测试,并不是试图获得可靠的请求服务计数器。

由于 Jersey 是构建在 servlet 之上的,因此我假设 servlet 在所有请求之间共享。所以我写了一个非常基础的类:

@Path("/id")
public class TestIdGeneration {

private AtomicInteger counter = new AtomicInteger();

@GET
@Produces("text/plain")
public Response serveRequest() {
Response.ResponseBuilder response = Response.ok(String.valueOf(counter.incrementAndGet()));
return response.build();
}
}

我假设每次 GET 请求计数器都会更新 1。但每当我发出 get 请求时,我都会返回值 1。我检查了响应 header 以确保该请求没有被缓存。以下是完整的响应 header :

Status Code: 200 OK
Connection: close
Content-Type: text/plain
Date: Thu, 16 Jan 2014 00:12:43 GMT
Server: Apache
Transfer-Encoding: chunked

为什么计数器没有随着每个 GET 请求而更新?

最佳答案

来自jax-rs documentation :

By default the life-cycle of root resource classes is per-request, namely that a new instance of a root resource class is created every time the request URI path matches the root resource.

因此报告的行为是预期的,因为会为每个请求创建一个新实例。尝试将计数器声明为静态

关于java - JAX-RS( Jersey )Web 服务中的请求服务计数器未增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com