You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

向Spring/Hibernate+Postgres后端POST请求遇Jackson反序列化报错及解决

问题:POST JSON到Java后端触发500错误,无法反序列化实体类

最近遇到个棘手的问题,跟大家分享下我的排查和解决过程:

问题场景

  • 我尝试向Java后端接口发送以下JSON请求体:
{ "title": "TITOLO", "description": "DESCRIZIONE", "mediaType": "MEDIATYPE" }
  • 数据始终无法写入数据库,但队友用同样的操作完全正常,我在Postman里一直收到500内部服务器错误
  • 更奇怪的是:我能成功写入队友的本地数据库,但队友却没法写入我的数据库
  • 我的运行环境:MacOS X High Sierra 10.13.4,IDE是Intellij IDEA

错误响应详情

收到的完整错误JSON如下:

{ "timestamp": 1526753419760, "status": 500, "error": "Internal Server Error", "message": "Type definition error: [simple type, class isssr.ticketsystem.entity.Ticket]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `isssr.ticketsystem.entity.Ticket` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
 at [Source: (PushbackInputStream); line: 2, column: 2]", "path": "/ticketsystem/ticket" }

问题根源与解决方案

一开始我以为是实体类Ticket的构造器问题(比如没加无参构造),但队友的代码和我的完全一致,而且队友能正常运行,这就排除了代码本身的问题。

后来对比了我们的运行环境,发现我用的是Java 10,而队友用的是Java 8。尝试把我的JDK降级到Java 8后,所有操作立刻恢复正常,JSON数据能正确写入数据库了。

看来是项目依赖的Jackson版本和Java 10存在兼容性问题,导致无法正确反序列化实体类。

内容的提问来源于stack exchange,提问作者JackLametta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:59:44