提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
今天在新建项目的时候,测试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