我在SE6版本上运行服务器客户端Java应用程序。服务器和客户端之间的消息传递是通过http协议。通常这个应用程序运行良好但最近我开始看到一些"连接重置"客户端日志错误。我认为这可能是因为保持活着并禁用它但错误仍然存在。这是客户端错误日志。
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:208)
at java.net.SocketInputStream.read(SocketInputStream.java:134)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:247)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:287)
at java.io.BufferedInputStream.read(BufferedInputStream.java:346)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:717)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:663)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1336)
at cb.smg.general.utility.ESIHttpCaller.executePost(ESIHttpCaller.java:43)
我知道服务器端有问题,如果工作线程池是完全套接字没有和服务器端的相应http代码关闭而客户端我们得到java.net.SocketException:来自服务器的文件意外结束。那应该是非常罕见的。 我的第一个问题是这个错误(连接重置)是因为应用程序之外的一些更改(例如操作系统修复)。 其次,处理此异常的最佳方法是什么,目前我只是在finally块中调用下面的方法。
HttpURLConnection.disconnect()
答案 0 :(得分:1)
如果工作线程池已满,则在服务器端和客户端没有相应的http代码时关闭套接字我们得到
java.net.SocketException: Unexpected end of file from server.
或'连接重置'。这取决于你当时是在读书还是写作。
我的第一个问题是这个错误(连接重置)是因为应用程序之外的某些更改(例如操作系统修复)。
没有
其次,处理此异常的最佳方法是什么,目前我只是在finally块中调用以下方法。
好主意。