AsyncInvoker没有发布Thread

kru*_*tik 5 java multithreading jax-rs jersey-client jersey-2.0

我正在AsyncInvoker使用Jersey 2.0.这对我来说很好.但是,在完成返回后,线程不会结束.请注意,我不希望对我打电话的服务有任何回应.

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;
}
Run Code Online (Sandbox Code Playgroud)

Fre*_*ans 0

只要您不对javax.ws.rs.core.Response未来值解析后提供给您的实际值执行任何操作,请求响应流就会保持打开状态(我猜与之关联的线程也是原始 HTTP 请求)。您应该:

  1. 对javax.ws.rs.core.Response对象执行某些操作并关闭它(或其流)。
  2. 使用.get(MyPojo.class)将响应流转换为实际对象。这将为您关闭流并MyPojo在将来解决实例。