converter.HttpMessageNotReadableException: JSON parse error: default constructor not found. 的解决办法

青旅半醒 2022-11-12 02:34 461阅读 0赞

问题概述

在项目开发过程中为了达到更快捷,更精简的代码开发效果,使用了比较流行的Lombok插件,但是在启动进行接口调用的时候遇到了梗,

如下图:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlbGxvX1dvcmxkX1FXUA_size_16_color_FFFFFF_t_70

具体详细信息:“ org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: default constructor not found. class com…POJO; nested exception is com.alibaba.fastjson.JSONException: default constructor not found. class com…POJO ”

解决办法

根据错误内容提示,所默认的构造器没被找到(现在的错误提示还是比较友好的),

先看存在问题的Lombok注解:

  1. import java.util.Date;
  2. import java.io.Serializable;
  3. import lombok.*;
  4. import lombok.experimental.Accessors;
  5. import io.swagger.annotations.ApiModel;
  6. import io.swagger.annotations.ApiModelProperty;
  7. import javax.validation.constraints.*;
  8. /**
  9. * Description: [某某 实体类]
  10. * Created on: 2021-03-12
  11. * Contacts: [who.seek.me@java98k.vip]
  12. * @version V1.1.0
  13. * @author huazai
  14. */
  15. @Data
  16. @ToString
  17. @Builder
  18. @EqualsAndHashCode(callSuper = false)
  19. @Accessors(chain = true)
  20. @ApiModel
  21. public class ProjectNatureDTO extends BaseDto implements Serializable {
  22. private static final long serialVersionUID = 1L;
  23. // 省略字段。。。
  24. }

注意以上注解中的 “ @Builder ” ,如果加上这个注解后,“ @Data ” 中的构造器就失效了,需要我们再显式的指定有参和无参构造器,即 “ @NoArgsConstructor ”和 “ @AllArgsConstructor ”,修改后的完成注解如下:

  1. import java.util.Date;
  2. import java.io.Serializable;
  3. import lombok.*;
  4. import lombok.experimental.Accessors;
  5. import io.swagger.annotations.ApiModel;
  6. import io.swagger.annotations.ApiModelProperty;
  7. import javax.validation.constraints.*;
  8. /**
  9. * Description: [某某 实体类]
  10. * Created on: 2021-03-12
  11. * Contacts: [who.seek.me@java98k.vip]
  12. * @version V1.1.0
  13. * @author huazai
  14. */
  15. @Data
  16. @ToString
  17. @Builder
  18. @NoArgsConstructor
  19. @AllArgsConstructor
  20. @EqualsAndHashCode(callSuper = false)
  21. @Accessors(chain = true)
  22. @ApiModel
  23. public class ProjectNatureDTO extends BaseDto implements Serializable {
  24. private static final long serialVersionUID = 1L;
  25. // 省略字段。。。
  26. }

加上 “ @NoArgsConstructor ”和 “ @AllArgsConstructor ” 后完美解决,Nice !!!


好了,关于 converter.HttpMessageNotReadableException: JSON parse error: default constructor not found. 的解决办法 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。

























作       者: 华    仔
联系作者: who.seek.me@java98k.vip
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/115066424
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

发表评论

表情:
评论列表 (有 0 条评论,461人围观)

还没有评论,来说两句吧...

相关阅读