记录一些遇见的bug——axios请求报500,后端报错com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.woniu.web.dto.DbinformDto and no properties discovered to create BeanSerializer
一、报错
前端报错:
后端报错:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException:
No serializer found for class com.woniu.web.dto.DbinformDto and no properties discovered to create BeanSerializer
(to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
(through reference chain: com.woniu.util.ResponseResult["data"]->
com.github.pagehelper.PageInfo["list"]->java.util.ArrayList[0])
二、原因
经过调试发现,请求走到这里还是正常的,获取的list结果有值
但使用mapstruct工具将查询到的po类转换成dto类时,转换后的dto数据全部丢失了,如图所示:
对不起忘截了。
总之原因是在于转换时数据丢失导致报错。
再查看dto类,尝试将@Data注解换成手动生成set get 方法,数据不再丢失
所以又是坑爹的lombok
三、解决方案
手动写下dto类的set get 方法
不要用lombok注解