各位兄弟,我现在在用struts自带的DownloadAction做一个下载的web程序的时候,出现了入下异常:
Caused by: java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:746)
at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:433)
at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:348)
at org.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:769)
at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:125)
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:361)
... 27 more注:1.在我下载过程中是可以正常下载的(也就是说虽然报异常了,但是还是可以下载下来的文件),但是用户在下载的时候可能有点诧异,因为下载是给平常有点诧异(这一点不好描述)
2.这种异常不是经常有,只是偶尔存在!但是在第一次下载的时候一般都要抛出异常!(以后再重复下载一般就不会抛出异常了,也就是说在这时候完全正常)
3.我在网上找了很久关于这种异常的解决办法,但是都说这种异常不严重,不影响程序运行,可是都没有给出解决办法!(但是我门面对的是客户啊!我这种异常已经表现出来了,不仅仅是在后台抛异常了)
所以请教各位,有什么良策没有,望赐教!在线等候!

解决方案 »

  1.   

    这个异常就是Socket被关闭的时候还进行读写造成的
      

  2.   

    Connection reset by peer的原因: 
    经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是: 
    ①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; 
    ②:客户关掉了浏览器,而服务器还在给客户端发送数据; 
    ③:浏览器端按了Stop 
      

  3.   

    socket write error写的时候错了,往这方面查
      

  4.   

    Connection reset by peer的原因: 
    经常出现的Connection reset by peer: 原因可能是多方面的,不过更常见的原因是: 
    ①:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; 
    ②:客户关掉了浏览器,而服务器还在给客户端发送数据; 
    ③:浏览器端按了Stop 
    ========================第一个原因我们可以控制最大连接数,
    第二和第三个原因不是我们能控制的。不让客户端看到的话就直接抛出异常不要打印出来。我也老是出现这个异常,但是不影响服务器的正常运作。
      

  5.   

    我遇到的情况,是DOM检查DTD时,没有连接上网落,出现的异常。LZ实验一下,这个异常是不是没有连接网络的时候出现的。