我正在使用带有 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 客户端,如带有 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