2

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

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

奇怪的是,这适用于较低版本的 JDK 8、9 和 10。我还尝试了其他 Http 客户端,如带有 JDK11 的 Spring Webclient,并且相同的数据可以使用它。除此之外,同样的数据也适用于 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

4

1 回答 1

2

我对以下 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 中。我还没有找到解决方法

于 2020-11-06T16:13:43.100 回答