No serializer found for class解决方法

本文讲述了作者在测试SpringBoot项目时遇到的序列化问题,解决方法是在配置文件中禁用`FAIL_ON_EMPTY_BEANS`,但发现问题根源在于返回数据缺少成员变量。通过实例分析,总结了如何避免此类问题并提供了解决方案链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

今天在新建项目的时候,测试springboot项目是否搭好,接口是否可以访问的时候,报了一个错误:
No serializer found for class com.lin.pojo.TestVo.TextVo and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.lin.common.api.Request[“data”])


方法

字面上来看,是序列化出了问题,百度也找到了解决办法,在SpringCloud的全局配置文件application.中加入了如下代码:
yml配置文件

spring:
  jackson:
    serialization:
      FAIL_ON_EMPTY_BEANS: false

properties配置文件

spring.jackson.serialization.FAIL_ON_EMPTY_BEANS: false

问题到这里算解决了,可是比对网上的错误原因,别人踩得坑自己都没踩啊,再翻看公司里的其他项目源码,发现其他项目的配置文件和配置类也没加这段代码啊,就感觉很奇怪,开始找原因。到最后可算找到原因了,是因为我响应给前端的数据没有成员变量的导致的,如果有成员变量,即使没有上面的配置代码也可以正常运行。
错误的视图类:

package com.lin.pojo.TestVo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author lin
 * @date 2022/06/05/4:38
 */
@Data
@NoArgsConstructor
public class TextVo implements Serializable{
    
}

正常的视图类:

package com.lin.pojo.TestVo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * @author lin
 * @date 2022/06/05/4:38
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TextVo implements Serializable {

    private String test = "123456";

}

总结

参考网址:

https://blog.csdn.net/m0_38045306/article/details/115006066
https://cloud.tencent.com/developer/article/1668655
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值