gpt4 book ai didi

jersey - Jersey 客户端是否会在异常时关闭连接?

转载 作者:行者123 更新时间:2023-12-04 18:06:40 27 4
gpt4 key购买 nike

我已阅读 Jersey documentation ,并表示 Jersey 在读取实体后自动关闭连接(例如 response.readEntity(SomeObject.class))

但是当抛出异常时,无论是错误的请求还是套接字超时,Jersey 是自动关闭连接,还是应该有一个调用 client.close() 的 finally 子句?

最佳答案

不。Jersey 也没有调用 client.close()如果出现异常, JerseyClient 也不实现 AutoCloseable .

您可以轻松地对此进行测试。如果在关闭后调用方法,客户端会抛出 IllegalStateException:

Client client = ClientBuilder.newClient();
client.close();
client.target("http://stackoverflow.com").request().get(); // IllegalStateException

但是您可以在捕获异常后调用方法:

Client client = ClientBuilder.newClient();
try {
client.target("http://foo.bar").request().get(); // java.net.ConnectException: Operation timed out
} catch (Exception ex) {
client.target("http://stackoverflow.com").request().get(); // works
}

所以关闭是你的工作。

更新: JAX-RS 2.1 will use AutoClosables .

关于jersey - Jersey 客户端是否会在异常时关闭连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25674220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com