问题
I am making rest call to IBM Cloud BPM. Some times calls are working fine.But sometimes it is giving following error.
java.io.IOException: An existing connection was forcibly closed by the remote host.
java.io.IOException: An existing connection was forcibly closed by the remote host
at sun.nio.ch.SocketDispatcher.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
Can any one help me on how to solve this issue.
Any help is greatly appreciated.
回答1:
Such behavior could be explained if the HTTP Client you use opens persistent connections to the server, and the server occasionally terminates them.
Normally, the connection to an HTTP server is closed after each response. With HTTP "keep-alive" you keep the underlying TCP connection open until certain criteria are met. What those conditions are depends on the server, which is free to close the connection after an arbitrary timeout or number of requests (just as long as it returns the response to the current request).
When the server closes such a connection the client usually reopens it again, and depending on implementation, may throw an exception or print a warning.
For example, Vert.x HttpClient (which opens persistent connections by default) also throws...
java.io.IOException: An existing connection was forcibly closed by the remote host
...when the server terminates them.
来源:https://stackoverflow.com/questions/37787447/getting-java-io-ioexception-an-existing-connection-was-forcibly-closed-by-the