Docker中SpringBoot输出流问题

msaohao 2018-12-25 02:46:38
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream())输出一个文件,如果是直接运行SpringBoot的jar包,下载一个较大的文件过程中,取消下载,会触发Exception(Throwable),代码会捕获到异常connection reset by peer。

在Docker中,如果是一个特别大的文件(大约100多MB),它会在短时间内flush(有下载开始时间和结束时间,job id is : 83205 use byteStream download consume time 1206ms)完,此时浏览器中可能只下载了几MB,即使取消下载,Java的try-catch也不会捕捉到任何异常。如果在下载的初期,手速够快,取消一次,报的异常时java.io.IOException: Broken pipe。

请问如何在Docker中,和直接运行jar一样,取消下载也能进入try-catch的异常?
...全文
55 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,162

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧