当前位置: 首页 > news >正文

请求报错:cannot deserialize from Object value (no delegate- or property-based Creator)

项目场景:

编写一个springboot的请求接口


问题描述

提示:这里描述项目中遇到的问题:

接口写好后,idea启动本地服务,采用postman工具调用接口,可以正常收到接口返回。但是将代码部署到服务器上后,采用postman工具调用接口,提示如下:

ERROR c.i.c.e.GlobalExceptionHandler ... message: Type definition error: [simple type, class com.test.dto.testReq]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `com.test.dto.testReq` (no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)

其中TestReq类的代码如下:

@AllArgsConstructor @Data public class TestReq { private String batchId; }

原因分析:

从报错的内容来看,TestReq对象不能被实例化,但是具有有参构造注解,推测是没有无参构造注解导致。

  1. 缺少默认无参构造函数
    Jackson 默认使用无参构造函数创建对象,然后通过 setter 方法或字段直接赋值来填充数据。如果类中没有任何构造函数(包括隐式的默认构造函数),或者只定义了带参数的构造函数而没有显式声明无参构造函数,就会报这个错。

  2. 本地idea IDE 安装了Lombok 插件,并且开启了Annotation Processing,它会动态的为类TestReq生成无参构造函数。而服务器上的代码通常是根据mvn clean package命令打包工具生成的jar,缺少无参构造函数引起该问题


解决方案:

解决方法1:

只保留@Data注解,去掉@AllArgsConstructor注解。@Data会隐式的包含无参构造函数。

注:如果@Data+@AllArgsConstructor它会覆盖无参构造函数,导致缺失无参构造函数。

解决方法2:

加上@NoArgsConstructor和注解,形成@Data+@AllArgsConstructor+@NoArgsConstructor

注:如果一个类只有@Data+@Builder,也会出现类似的错误:

no Creators, like default constructor, exist: cannot deserialize from Object value (no delegate- or property-based Creator)

解决方法:

加上@NoArgsConstructor和@AllArgsConstructor注解,形成@Data+@Builder+@AllArgsConstructor+@NoArgsConstructor

http://www.jsqmd.com/news/471765/

相关文章:

  • 为什么你“什么都知道”,却依然炒不好股?
  • 1377605-22-5,Biotinylated isoxazole 在相分离凝聚物药物筛选中的前景
  • JavaScript 异步编程:Promise 与 async/await 的探索
  • TensorRT C++部署流程
  • Linux-C socket网络通信 03.25
  • 一键解锁 N 种快乐, 蘑兔ai音乐也太会了
  • PDF.js实战:教你给企业官网嵌入可定制化的PDF阅读器(附源码)
  • JavaScript 事件循环机制与宏任务/微任务解析
  • Wireshark抓取RTP流实战:从H264封装到播放全流程解析(附常见问题排查)
  • TypeScript 类型系统与泛型编程实践
  • 钓鱼邮件反查
  • 3.2 交换机的包转发操作
  • 海康威视摄像机二次开发避坑指南:从SDK集成到萤石云接入的实战经验
  • TypeScript 装饰器与元数据反射机制:探索代码增强的新维度
  • 订单管理模块避坑指南:从物流进度条到省市联动的3个典型问题解决方案
  • YOLO11检测中的模型分块加载策略:讲解如何在内存有限的设备上动态加载模型
  • React 虚拟 DOM 与 Diffing 算法原理解析
  • UniApp实战:5分钟搞定Google登录集成(附完整代码)
  • 企业内网安全实战:H3C AC与思科AAA服务器联动配置全流程(附避坑指南)
  • 602 传奇游戏:复古、高爆、打金一网打尽
  • 深入MTK Camera数据流:从Sensor到ISP的完整路径解析与性能优化技巧
  • Kubernetes 恢复虚拟机快照后 Pod 一直 ContainerCreating,Calico Unauthorized 问题排查全过程(新手踩坑记录)
  • Android Studio SDK安装踩坑实录:从代理设置到HAXM安装的完整解决方案
  • CH9120芯片实战:5分钟搞定以太网转串口透传(附配置工具下载)
  • OpenClaw 智能搜索 Skill 创建:从零到一的保姆级图文教程
  • Python → WASM+WASI编译避坑手册:12个生产环境踩过的坑,第7个90%开发者仍在犯
  • Claude Cowork:10GB 虚拟机暗中运行,安全还是负担?
  • Charles抓包工具安卓配置:为什么你的手机请求看不到?(附最新证书解决方案)
  • LoadRunner四大版本实战指南:从Professional到Developer的选型与部署策略
  • 实战解析:如何通过requestrepo高效检测XXE漏洞