0
聲明:這只是我正在運行的測試,並未試圖獲得可靠的請求服務櫃檯。JAX-RS(澤西島)網絡服務中的請求服務計數器未遞增
由於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請求計數器都會被更新一次。但是,超時我做了一個get請求,我得到了值1.我檢查了響應頭,以確保請求沒有被緩存。以下是完整的響應標頭:
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請求都更新計數器?
謝謝大衛。這非常有趣,現在我們只需要擔心僅對靜態成員的併發訪問。我們可以使用非靜態HashMap而不是ConcurrentHashMap。 – user824212