可能是我不了解其中的ASYNC部分。 我有一个好客的客户(只有一个客户)
client = new ResteasyClientBuilder().connectionPoolSize(maxConnections).connectTimeout(timeout, TimeUnit.SECONDS).readTimeout(timeout, TimeUnit.SECONDS).httpEngine(engine).build();
maxConenctions为10,客户端在启动时创建,并在for循环中对每个请求进行异步调用:
ResteasyWebTarget resteasyWebTarget = client.target(restRequestFromGateway.getUrl());
Future<Response> response = resteasyWebTarget.
request().
headers(headers).
async().
get(restWSResponseCallback);
if (response!= null){
response.isDone();
}
我创建了十个请求,并在for循环中将它们发送通过。在WebService端,我放置了一个调试点,然后等待。所以我得到了第一个请求,没有让它通过。
我一直希望客户端异步运行,因此它将继续并发送多个请求并等待invocationCallback中的响应,但没有这样做
直到收到来自Web服务的响应,下一个请求才真正到达Web服务。 为什么客户的请求没有一个接一个地处理。