在windows xp开发下的项目,部署到2台linux服务器,一台没问题,另一台上传大文件有问题,报下面的错,求解答!

在windows xp开发下的项目,部署到2台linux服务器,一台没问题,另一台上传大文件有问题,报下面的错,求解答!

问题描述:

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


这个设置了,应该不是你程序这边的问题(有的话也就是你连接池的maxIdleTime设置大点),估计是你服务器的问题,可能是你服务器的设置没到位,比如:加大tomcat内存或者查看你登陆到Linux用户有没有设置什么磁盘配额或者权限等!

window和Linux上的 文件路径是不同的,一个是/ 一个是\ 所以在生产环境检查你图片的路径

看这个错 个人觉得文件大,上传时间相对长或者buffSize有大小限制的或者其他的原因,b端直接断开连接,服务端报broken pipe,

把你的使用的技术贴出来

好像已经解决了吧?

服务器用的千兆网卡?

话说,有的时候千兆网卡数据量大时,连接会断掉。
要做点放大缓存之类的调优。

google一下。

使用 pooledExecutor 来试试,nio

也肯跟你的文件命名有关系

linux下面是要绝对路径的。相对路径是不行的,有的时候会出问题的。