HTTP传输错误:java.net.SocketException:连接重置

时间:2015-02-10 12:46:10

标签: java xml web-services sockets

客户端应用程序已使用Jdeveloper 10.1.3.2构建,并且它在OC4J服务器上运行。此应用程序正在将数据发送到外部服务器应用它工作了很长时间没有任何问题。最近发生了连接问题,并生成了以下堆栈跟踪:

com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.SocketException: Connection reset
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:133)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:153)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:93)
at com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
at com.sun.xml.ws.client.Stub.process(Stub.java:319)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:157)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:140)
at $Proxy44.sendRem(Unknown Source)

在goggling之后我发现了关于错误sockets - What's causing my java.net.SocketException: Connection reset?的一个很好的讨论。这个链接中的一个答案说这个问题主要来自客户端,因为如果是来自服务器端的异常将是({{1 }})。

我做了什么: 我尝试使用此格式How to change OC4J HTTP Timeout来增加OC4J的套接字时间。我所做的是将SocketException reset by peer改为5000而不是500(10倍)

但错误仍然存​​在。那么,有什么建议来解决这个问题吗?

注意:我能够对外部服务器IP和端口使用oracle.j2ee.http.socket.timeout命令,它运行正常。

-------------------------------------------- ------------ Update 1 ------------------------------------ --------------------

我在服务器启动时使用以下命令增加运行客户端应用程序的服务器时钟偏差:

telnet

但没有运气,问题没有解决。

-------------------------------------------- ------------ Update 2 ------------------------------------ --------------------

我意识到这个问题根本不是来自应用程序;我使用 SoapUI 测试外部URL,我得到了相同的错误Connection rest。我认为这个新的更新clreay表明程序代码没有任何问题。但我需要知道去哪里或现在检查。现在,解决问题的出发点在哪里。任何线索都会有所帮助。

1 个答案:

答案 0 :(得分:1)

正如您在问题的更新2中看到的那样,问题不是来自客户端应用程序,因为SoapUI发生了同样的错误。

问题在于运行客户端应用程序的计算机具有低带宽,这对于API通信来说还不够。使用简单的速度测试,我发现上传带宽低于服务器应用团队给出的最低要求。

我通过在客户端应用程序运行时使用Resource Monitor in Windows监控网络资源并使用online speed check

来结束这一事实

要解决此问题,必须在客户端应用程序运行的位置增加计算机带宽