在ServletOutputStream中写入字节时的管道中断

在执行此代码时,

ServletOutputStream out = response.getOutputStream();

out.write(bytes, 0, bytes.length);

out.flush();

out.close();

我经常收到此异常,但我不知道为什么会发生。

Caused by: ClientAbortException:  java.net.SocketException: Broken pipe

at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:358)

at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:354)

at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:381)

at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:370)

at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)

我有一个在JBoss 4.2.3和MySQL下的Linux服务器中运行的Web应用程序。

这是怎么引起的,我该如何解决?

回答:

通常,这是由于客户端断开连接。客户端可能已断开连接的原因有很多(超时,浏览器关闭等)。另外,按照惯例,如果您没有打开流,那么请不要关闭。有关在此处关闭流的更多信息,我应该关闭servlet输出流吗?。

以上是 在ServletOutputStream中写入字节时的管道中断 的全部内容, 来源链接: utcz.com/qa/428789.html

回到顶部