问题描述
ClientAbortException: java.net.SocketException: Broken pipe at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:356) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433) at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:307) at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:286) at org.apache.catalina.connector.Response.flushBuffer(Response.java:541) at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:211) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:817) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:623) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:444) at java.lang.Thread.run(Unknown Source) Caused by: java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(Unknown Source) at java.net.SocketOutputStream.write(Unknown Source) at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:772) at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:123) at org.apache.coyote.http11.InternalOutputBuffer.doWrite(InternalOutputBuffer.java:579) at org.apache.coyote.Response.doWrite(Response.java:559) at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:351) ... 13 more 问题补充:yoscar 写道
解决方案
<constant name="struts.multipart.maxSize" value="536870912" /> 这个设置了,应该不是你程序这边的问题(有的话也就是你连接池的maxIdleTime设置大点),估计是你服务器的问题,可能是你服务器的设置没到位,比如:加大tomcat内存或者查看你登陆到Linux用户有没有设置什么磁盘配额或者权限等!
解决方案二:
linux下面是要绝对路径的。相对路径是不行的,有的时候会出问题的。
解决方案三:
也肯跟你的文件命名有关系
解决方案四:
使用 pooledExecutor 来试试,nio
解决方案五:
服务器用的千兆网卡?话说,有的时候千兆网卡数据量大时,连接会断掉。要做点放大缓存之类的调优。google一下。
解决方案六:
好像已经解决了吧?
解决方案七:
把你的使用的技术贴出来
解决方案八:
看这个错 个人觉得文件大,上传时间相对长或者buffSize有大小限制的或者其他的原因,b端直接断开连接,服务端报broken pipe,
解决方案九:
window和Linux上的 文件路径是不同的,一个是/ 一个是 所以在生产环境检查你图片的路径