我正在对 IBM Cloud BPM 进行休息呼叫。有时通话工作正常。但有时会出现以下错误。
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)
谁能帮我解决这个问题。
任何帮助是极大的赞赏。
原文由 Rajesh Kohir 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的 HTTP 客户端打开与服务器的 持久连接,并且服务器偶尔会终止它们,则可以解释这种行为。
通常,在每次响应后关闭与 HTTP 服务器的连接。使用 HTTP“ keep-alive ”,您可以保持底层 TCP 连接打开,直到满足特定条件。这些条件取决于服务器,它可以在任意超时或请求数量后自由关闭连接(只要它返回对当前请求的响应)。
当服务器关闭这样的连接时,客户端通常会再次打开它,并且根据实现的不同,可能会抛出异常或打印警告。
例如, Vert.x HttpClient (默认打开持久连接)也会抛出…
…当服务器终止它们时。