Spring 带有 JDK11 错误的 RestTemplate 发布数据超过特定限制

Spring RestTemplate with JDK11 errors Posting data above certain limit

我正在使用带有 JDK11 的 OAuth2RestTemplate 来发出带有 Json 数据(860 行和 26 KB)的 POST 请求。奇怪的是,代码在生产服务器上使用 < 700 Json 行(或 20 KB)并且在本地机器上使用 < 500 行(15 KB)时工作正常。但是,一旦我在 JSON 中增加了几个数据块,它就会开始出现异常。 异常基于与 RestTemplate 一起使用的 HttpRequestFactory 实现。 如果我使用 HttpComponentsClientHttpRequestFactory 那么它是 NoHttpResponseException XXX.XXX:443 响应失败 如果我使用 SimpleClientHttpRequestFactory 然后 java.net.SocketException 来自服务器的文件意外结束

restTemplate.postForEntity(Url, dataBytes, byte[].class);

奇怪的是,这适用于较低版本的 JDK 8、9 和 10。我还尝试了其他 Http 客户端,例如 Spring Webclient 和 JDK11,并且相同的数据也适用于它.除此之外,相同的数据也适用于 Curl/Postman。 但无法确定为什么它会在超出特定数据限制的情况下导致 RestTemplate 出现问题。

以下是我正在使用的一些主要依赖项(依赖项在现有项目中不会有太大变化)。

Spring-core 5.1.6.RELEASE
org.apache.httpcomponents.httpclient 4.5.6
spring-security-core 5.1.4.RELEASE
spring-security-oauth2-client 5.1.4.RELEASE
JDK11

任何帮助或想法将不胜感激。 TIA

我在使用以下 JDK11 版本时遇到了同样的问题:

IMPLEMENTOR="AdoptOpenJDK" IMPLEMENTOR_VERSION="AdoptOpenJDK" JAVA_VERSION="11.0.2"

IMPLEMENTOR="AdoptOpenJDK" IMPLEMENTOR_VERSION="AdoptOpenJDK" JAVA_VERSION="11.0.4"

但在 11.0.9.11 中不再出现该问题。我还没有找到修复方法