获得;java.io.IOException:远程主机强制关闭了现有连接;

获得;java.io.IOException:远程主机强制关闭了现有连接;,java,rest,ibm-bpm,Java,Rest,Ibm Bpm,我正在对IBMCloudBPM进行rest调用。有些时候,呼叫工作正常,但有时会出现以下错误 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.

我正在对IBMCloudBPM进行rest调用。有些时候,呼叫工作正常,但有时会出现以下错误

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)
有人能帮我解决这个问题吗


非常感谢您的帮助。

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

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

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

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


…当服务器终止它们时。

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

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

然后选中启用操作系统的受限环境 应用并保存


这解决了我的问题。

我在windows server上也遇到过同样的问题。 然后我检查了服务器的内存利用率,它占用了更多内存,所以我的应用程序没有运行。 我从中挑选了一些用户配置文件

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


此解决方案对我有效。

这可能意味着,另一端的rest调用处理不正确,或者rest调用的格式不正确。这意味着您尝试与之通信的服务器已关闭网络连接。试着找出它为什么这样做。也许服务器上的某个地方有一个日志文件,其中可能包含一条错误消息,这可能有助于找出发生这种情况的原因。Piyusj,如果rest调用的格式不正确,它应该每次都会失败。它会经过一些时间。Jesper,这是对IBM Cloud BPM的rest调用。我想,他们不允许我访问日志文件。我可以访问云日志文件吗?中间可能是一个代理服务器/防火墙,用于关闭连接
java.io.IOException: An existing connection was forcibly closed by the remote host