当前位置:  开发笔记 > 编程语言 > 正文

在Jersey StreamingOutput上调用flush()没有任何效果

如何解决《在JerseyStreamingOutput上调用flush()没有任何效果》经验,为你挑选了0个好方法。

我正在使用一个StreamingOutput工作正常的泽西,直到我们升级到泽西岛2.16.这就是事情.StreamingOuput在某些情况下,我的输出速度非常慢.我经常写数据,但我写的很慢,一次只是一点点.我叫flush()OutputStream传递给StreamingOutput.write()每一个我写任何字节的时间,但冲洗()似乎没有任何效果.在写入8K之前,没有任何东西通过电线发送OutputStream.不幸的是,在某些情况下,到写入8K时,客户端已超时.

我下载了一些球衣源并通过一些调试,我看到OutputStream传递到的write()是一个UnCloseableOutputStream包装CommittingOutputStream.

CommittingOutputStream启用了缓冲,因此在冲洗()本质上是一个无操作直到响应被提交(完成).

所以,我在泡菜中.如何StreamingOutput在整个响应完成之前使用(或以其他方式直接写入输出流)并强制它通过线路发送字节?还有其他方法可以用泽西这样做吗?我找不到任何方法ResponseBuilder来做到这一点.我找不到任何关闭缓冲的方法.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有