"Unexpected end-of-input in VALUE_STRING"错误的原因可能是什么



我开发了一个软件,它一直正常运行,直到我的mysql服务器崩溃。崩溃后,我格式化了我的服务器,然后安装了我需要的一切,就像以前一样。格式化后,所有的软件似乎都运行正常,但我开发的软件开始出现一些错误。我在数据库中的一些列是JSON。通常情况下,我会从该列中获取所有信息,修改它,然后恢复它。不幸的是,在格式化后,我得到了这个错误:

2020-02-25 14:04:25.947  WARN 12528 --- [io-8443-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected end-of-input in VALUE_STRING; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Unexpected end-of-input in VALUE_STRING at [Source: (PushbackInputStream); line: 1, column: 15939] (through reference chain: com.bWS.entity.kk.MyEntity["hatalar"])]

我没有从软件中更改任何内容,所以我的JSON数据不可能是无效的。此外,这个错误是随机出现的,我的意思是,例如,在第一次尝试中出现了这个错误,但第二次尝试时一切都很好。尤其是当数据长度变长时,这种错误会更频繁地出现。

我需要帮助来了解原因。

谢谢大家。

系统:

  • Ubuntu 18.04
  • MySQL 8.0.19(我也尝试过5.7(
  • OpenJDK 11.0.6
  • Tomcat 9

软件:Java/Spring web应用程序(客户端+web服务(

编辑

样本数据:

{
"id": 824,
"gId": 4904,
"eK": "https://algoritimbilisim.com",
"tarih": "2020-02-25",
"hatalar": {
"periyot": [
{
"aralik": "10:00-11:00",
"adi": [
{
"deger": "YOK",
"kalite": "1",
"hataKodlari": []
},
{
"deger": "YOK",
"kalite": "1",
"hataKodlari": []
}
]
}
]
}
}

既然您提到使用Tomcat9,请尝试分享我最近的经验。

最近我遇到了类似的问题。当升级到Tomcat 9.0.31时,我的一个测试用例对一个大JSON(略小于2MB(进行POST,它开始随机失败:

JSON解析错误:VALUE_STRING中的输入意外结束;嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:在[源:(PushbackInputStream(;行:1,列:17](通过引用链:com.abc.xyz["str"](处的VALUE_STRING中意外的输入结束-JSON解析错误:在VALUE_STRING中意外的输出结束;嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:在的[Source:(PushbackInputStream(;行:1,列:17](通过引用链:com.abc.xyz["str"](处的VALUE_STRING中意外结束输入

原来Tomcat 9.0.31中有一个错误导致了这种情况。

https://bz.apache.org/bugzilla/show_bug.cgi?id=64202

转到Tomcat 9.0.33解决了我的问题。

您是否也在使用Tomcat 9.0.31?

最新更新