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

38 篇文章 5 订阅
4 篇文章 0 订阅

问题概述

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

如下图:

具体详细信息:“ 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注解:

import java.util.Date;
import java.io.Serializable;

import lombok.*;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;

/**
 * Description: [某某 实体类]
 * Created on:  2021-03-12
 * Contacts:    [who.seek.me@java98k.vip]
 * @version     V1.1.0
 * @author      huazai
 */
@Data
@ToString
@Builder
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel
public class ProjectNatureDTO extends BaseDto implements Serializable {

    private static final long serialVersionUID = 1L;
    // 省略字段。。。
}

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

import java.util.Date;
import java.io.Serializable;

import lombok.*;
import lombok.experimental.Accessors;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;

/**
 * Description: [某某 实体类]
 * Created on:  2021-03-12
 * Contacts:    [who.seek.me@java98k.vip]
 * @version     V1.1.0
 * @author      huazai
 */
@Data
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel
public class ProjectNatureDTO extends BaseDto implements Serializable {

    private static final long serialVersionUID = 1L;
    // 省略字段。。。
}

加上 “ @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
版权声明:本文为博主原创文章,请在转载时务必注明博文出处!

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error的异常。它表示在处理JSON数据时出现了解析错误。具体的错误信息是Unexpected end-of-input: expected close marker for Object (start marker at [Source: (PushbackInputStream); line: 1, column: 1])。 有可能是因为请求中的JSON数据格式错误,导致后台无法正确解析。检查一下请求中的JSON数据是否正确闭合,并且符合后台代码的期望格式。 另外,根据引用中的后台代码示例,可以看出需要传递一个AdvertUpdateParam对象作为请求体。请确保请求中的JSON数据与AdvertUpdateParam对象的属性对应,并且符合AdvertUpdateParam类的定义。 修复代码示例可以参考引用,确保AdvertUpdateParam类的属性与请求中的JSON数据对应,并且包含序列化的功能。 希望这些解决方案能帮助你解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [org.springframework.http.converter.HttpMessageNotReadableException异常解决](https://blog.csdn.net/m0_67394006/article/details/123677169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值