12

我正在致电 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)

任何人都可以帮助我解决这个问题。

任何帮助是极大的赞赏。

4

3 回答 3

11

如果您使用的 HTTP 客户端打开到服务器的持久连接,并且服务器偶尔会终止它们,则可以解释这种行为。

通常,与 HTTP 服务器的连接在每次响应后都会关闭。使用 HTTP“ keep-alive ”,您可以保持底层 TCP 连接处于打开状态,直到满足某些条件。这些条件是什么取决于服务器,它可以在任意超时或请求数量后自由关闭连接(只要它返回对当前请求的响应)。

当服务器关闭这样的连接时,客户端通常会再次重新打开它,并且根据实现,可能会抛出异常或打印警告。

例如,Vert.x HttpClient(默认打开持久连接)也会抛出......

java.io.IOException: An existing connection was forcibly closed by the remote host

...当服务器终止它们时。

于 2016-11-03T22:04:40.827 回答
1

从外部 PC 使用我的 API 时出现此错误,但是从同一台 PC 调用时它工作正常。

要修复,我去了控制面板
右键单击Java图标转到高级选项卡

然后勾选Enable Operating System 的受限环境 Apply and Save

在此处输入图像描述

这解决了我的问题。

于 2020-12-16T00:08:28.947 回答
0

我在 Windows 服务器上遇到了同样的问题。然后我检查了服务器的内存利用率,它占用了更多内存,所以我的应用程序没有运行。 我已经从

任务管理器-->用户选项卡-->右键单击并注销

这个解决方案对我有用。

于 2021-06-11T13:02:05.023 回答