java.net.SocketException: Connection reset

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:170)
at weblogic.servlet.internal.ServletInputStreamImpl$1.read(ServletInputStreamImpl.java:115)
at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:180)
at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:1257)
at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:1124)
at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:1335)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:383)
.........

在网上找了些说法:

a。maybe:
1,网络编程时未正确捕获java.net.SocketException,客户端先关闭就会报这个异常;
2,数据库和应用服务器的网段不同.

b。好像说防火墙的比较多。。。。
大部分是网络的原因。提交post的东西多,然后服务器接收就超时了。。。

c。如果weblogic server和数据库服务器不在同一台主机,会经常有这种情况,我也遇到过,不过好像的确不怎么影响使用


d。从根本上说是weblogic sp2的bug

e。一般是有些客户端已关闭,一些线程因为延迟等原因觉察不到此连接已结束,继续等到到出错或是 客户端那里不停刷或一个访问/刷新没完成前再刷,要让这个无用的线程死掉和这个错误如果不影响应用运行的话大可不必理会。有一种抛出这个异常的情况是:
浏览器请求了一个服务器端资源,在响应回来之前转而请求其他的资源。这个时候最初的浏览器跟服务器的连接中断,服务器的peer程序就会reset那个connection。


我遇到的问题就是当服务器端在InputSteam读取数据时,客户端抛出异常退出,导致出现这个错误(根本原因就是客户端的socket已经关闭)

你可能感兴趣的:(Connection)