Java:在HttpServlet中写入时的IOException

时间:2010-02-27 20:40:30

标签: java http

我在Java(和Jetty)中编写了一个代理。无论如何,它运作良好,但有时

...
final OutputStream realOs = res.getOutputStream();
...
InputStream is = url.openStream();
int i;
while ((i = is.read(buffer)) != -1) {
  realOs.write(buffer, 0, i);
}

因IOException而失败。我注意到它主要发生在大型二进制文件中,即flash和Safari浏览器......

我很困惑......

1 个答案:

答案 0 :(得分:2)

如果在您仍在写入套接字时关闭浏览器(或用户取消下载),则会发生这种情况。浏览器会关闭套接字,因此您的OutputStream不再需要写入任何内容。

不幸的是,很难确定是否确实如此 - 在这种情况下这不是一个问题 - 或者是否存在更加阴险的事情。