关闭spring boot jackson的FAIL_ON_EMPTY_BEANS

问题:

@Override
public AppFuneralInfoEntity getFuneralInfoById(Integer id) {
    return funeralInfoDao.getOne(id);
}
导致:

2019-03-12 15:11:43.551 ERROR 4948 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.zjhcsoft.bi.dingtalkfuneral.util.ServiceResult["result"]->com.zjhcsoft.bi.dingtalkfuneral.entity.AppFuneralInfoEntity_$$_jvst719_3["handler"])] with root cause

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.zjhcsoft.bi.dingtalkfuneral.util.ServiceResult["result"]->com.zjhcsoft.bi.dingtalkfuneral.entity.AppFuneralInfoEntity_$$_jvst719_3["handler"])
 

解决办法一

在实体类上面加上注解:

@JsonIgnoreProperties(value = {"handler","hibernateLazyInitializer","fieldHandler"})
1


解决办法二

注册一个objectMapper覆盖掉默认的,这样就不用在每个类上面使用@JsonIgnoreProperties:

@Bean
public ObjectMapper objectMapper() {
     return new ObjectMapper().disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
}

// ObjectMapper为com.fasterxml.jackson.databind.ObjectMapper;
1
2
3
4
5
6
测试结果如下:

对比解决方法一,在解析单个对象时返回的json中多了两个字段handler和hibernateLazyInitializer。

最快解决方法:

application.yml中增加

spring.jackson.serialization.fail_on_empty_beans=false

————————————————
版权声明:本文为CSDN博主「Thomas灬Wade」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jnloverll/article/details/88421245

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值