你是否需要关闭JerseyClient(2.1.x)响应的连接,如果没有正文?

时间:2015-10-22 09:12:05

标签: java jersey connection

在某些情况下,我们没有明确关闭Response(由JerseyClient制作)的连接,这有时会导致严重的问题。关于我想知道的重构,我们是否需要在没有正文的响应中调用close()

到目前为止我知道:

  • response.close()当然会关闭Connection并且是幂等的
  • respnse.readEntity()也将其关闭
  • response.getStatus() 关闭连接

那么,再次,响应是什么?

1 个答案:

答案 0 :(得分:1)

在我看来,无论实体内容如何,​​最好始终致电Response.close()

  • 与通话
  • 无关
  • 引入Response.close()方法是一种非常反直觉的设计,不需要一直调用它。这种混乱蔓延到你的代码中。
  • Javadoc似乎说空实体不需要它,但这不太清楚。
  • JAX-RS实施可能会误解spec并要求close()被调用。
  • 您的资源的服务器实现可能会更改,现在会发送实体。然后,客户端上有资源泄漏。
  • 你已经提到似乎有问题......