java – Jersey Client关闭InputStream响应 – 它真的有效吗?
我正在使用Jersey Client v2.16(Dropwizard 0.8.0的传递依赖,我也在使用它). 当实体被读作InputStream时,我对某个响应的关闭机制感到困惑. documentation声明:
但是,当我使用Response.readEntity(InputStream.class)获取响应实体时,我最终得到的是org.glassfish.jersey.message.internal.ReaderInterceptorExecutor $UnCloseableInputStream的实例,顾名思义,它不会释放当调用close()方法时,它下面的任何东西(我可能会说,打破了InputStream契约).这是close()方法:
因此,我最终在我的池中的HTTP连接未发布并慢慢填充池. 鉴于可能不容易获得对响应的引用,并且官方文档声明InputStream **或**应该手动关闭Response,我如何设法实际释放物理资源? 最佳答案
看起来这是泽西客户端的已知错误,根据https://java.net/jira/browse/JERSEY-2878和https://github.com/jersey/jersey/releases/tag/2.21,它似乎在2.21中修复
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |