java jersey client_java – Jersey Client关闭InputStream响应 – 它真的有效吗?

我正在使用Jersey Client v2.16(Dropwizard 0.8.0的传递依赖,我也在使用它).

当实体被读作InputStream时,我对某个响应的关闭机制感到困惑. documentation声明:

Also if the entity is read into an InputStream (by response.readEntity(InputStream.class)), the connection stays open until you finish reading from the InputStream. In that case, the InputStream or the Response should be closed manually at the end of reading from InputStream.

但是,当我使用Response.readEntity(InputStream.class)获取响应实体时,我最终得到的是org.glassfish.jersey.message.internal.ReaderInterceptorExecutor $UnCloseableInputStream的实例,顾名思义,它不会释放当调用close()方法时,它下面的任何东西(我可能会说,打破了InputStream契约).这是close()方法:

@Override

public void close() throws IOException {

if (LOGGER.isLoggable(Level.FINE)) {

LOGGER.log(Level.FINE, LocalizationMessages.MBR_TRYING_TO_CLOSE_STREAM(reader.getClass()));

}

}

因此,我最终在我的池中的HTTP连接未发布并慢慢填充池.

鉴于可能不容易获得对响应的引用,并且官方文档声明InputStream **或**应该手动关闭Response,我如何设法实际释放物理资源?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值