当前位置: 首页 > 面试题库 >

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

仲孙奇
2023-03-14
问题内容

执行此代码时,

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输出流吗?。



 类似资料:
  • 因此,服务器和客户端都发生这种情况。我有来自通道活动方法的通道处理程序上下文,我正在尝试使用写入AndFlush(对象消息)方法向其写入对象,但似乎消息永远不会进入创建的管道。 下面是我的客户端处理程序的样子(我重写了包解码器和编码器中的一些方法来调试) 这是我如何写入ChannelHandlerContext通道变量 当我运行我的代码时,“从客户端写入服务器的数据”是打印机,但“在客户端上编码的

  • 问题内容: 将File写入javax.servlet.ServletOutputStream的最有效方法是什么? 编辑: 如果使用NIO会更有效吗? 问题答案: 哪里是的FileInputStream和是。 IOUtils是Apache Commons中 Commons IO 模块的实用程序。

  • 问题内容: 我正在写文件,但是我想更改数据的字节序。 这就是我将字节数据写入文件的方式(默认情况下以Little Endian输出) 有没有一种方法可以定义字节数据如何用Java编写的字节序? 问题答案: 您无法使用,而总是使用big endian。 您 可以 使用调用来影响其读取和写入数据的方式。 您可以使用 任一 来准备,你会用一个经典的写上后 或 完全去NIO和使用任何的写作

  • 分析输入后,有两个选项可用: 如果x=1->插入 如果x=2->更新 测试 null

  • 问题内容: 如何在Java中将字节数组写入文件? 问题答案: 可以使用IOUtils.write(字节[]数据,OutputStream的输出)从Apache的百科全书IO。

  • 问题内容: 我正在尝试基于Erica Sadun的方法 在Swift中构建异步文件下载。但是我需要它来处理更大的文件,因此我找到了有关使用NSOutputStream而不是NSData的答案,这是有意义的。 但是,我无法使其正常工作。当我尝试将NSData字节(在我的NSURLConnection didReceiveData函数中)添加到NSOutputStream写入函数时,出现以下错误:在该