Spring SocketException 导致 JSON 解析错误

问题描述

我有一个 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...