问题描述
我有一个 Spring Boot 应用程序,并使用 restTemplate 向其他服务发送 http 请求,问题是时不时(不频繁)我收到此 Json 解析异常。重试会成功。
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Connection reset;
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Connection reset (through reference chain: Response["data"]->java.util.ArrayList[23])\n
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:240)\n
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:225)\n
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:96)\n
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:934)\n
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:918)\n
这似乎是一个简单的 Json 解析错误,但我注意到在调用堆栈中还有另一个原因
Caused by: java.net.socketException: Connection reset\n
at java.net.socketInputStream.read(SocketInputStream.java:189)\n
at java.net.socketInputStream.read(SocketInputStream.java:121)\n
我的问题是这个 IO 异常会导致 Json 解析错误。 我的猜测是因为 TCP 问题,部分 Json 数据丢失,然后 ObjectMapper 无法正确解析 Json。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)