java AsyncInvoker未释放线程
我正在使用Jersey 2.0使用AsyncInvoker
。这对我来说很好。然而,线程并没有在返回完成后结束。请注意,我不希望我呼叫的服务有任何响应
public Future<Response> fire(WebTarget webTarget) {
Future<Response> response = null;
try {
response = webTarget.request(MediaType.APPLICATION_JSON_TYPE)
.accept(MediaType.APPLICATION_JSON_TYPE)
.headers(headers)
.async().get();
}
catch (Exception e) {
e.printStackTrace();
}
return response;
}
# 1 楼答案
您需要关闭在调用方法中创建的
client
对象。在调用方法中,您将有如下内容:因此,在调用此方法后,需要关闭
client
但是,建议在收到响应后关闭
client
。比如下面-# 2 楼答案
只要在将来的值解析后,不使用提供给您的实际
javax.ws.rs.core.Response
执行任何操作,请求-响应流就会保持打开状态(我猜与之关联的线程也会是原始HTTP请求)。你应该:javax.ws.rs.core.Response
对象执行一些操作并关闭它(或它的流)李>MyPojo
实例李>