我正在休息调用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)
任何人都可以帮我解决这个问题。
非常感谢任何帮助。
答案 0 :(得分:8)
如果您使用的HTTP客户端向服务器打开 persistent connections ,并且服务器偶尔会终止它们,则可以解释此类行为。
通常,每次响应后都会关闭与HTTP服务器的连接。使用HTTP" keep-alive "保持底层TCP连接处于打开状态,直到满足某些条件。这些条件取决于服务器,服务器可以在任意超时或请求数量之后自由关闭连接(只要它返回对当前请求的响应)。
当服务器关闭这样的连接时,客户端通常会再次重新打开它,并且根据实现,可能会抛出异常或打印警告。
例如, Vert.x HttpClient(默认情况下打开持久连接)也会抛出......
java.io.IOException: An existing connection was forcibly closed by the remote host
...当服务器终止它们时。
答案 1 :(得分:0)
从外部PC上使用我的API时出现此错误,但是从同一台PC上调用时,它运行正常。
要解决此问题,我去了控制面板
右键单击 Java 图标
转到高级标签
然后检查启用操作系统的受限环境 申请并保存
这解决了我的问题。
答案 2 :(得分:0)
我在 Windows 服务器上遇到了同样的问题。 然后我检查了服务器的内存利用率,它占用了更多内存,所以我的应用程序没有运行。 我从
中注销了一些用户个人资料 <块引用>任务管理器-->用户选项卡-->右键单击并注销
这个解决方案对我有用。