报错,nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException??


1、

问题:
2021-01-06 15:43:41.663 ERROR 10184 --- [io-13000-exec-2] c.y.a.c.v1.retcode.RetControlller        : 修改失败:[could not execute statement; SQL [n/a]; constraint [UNIQUE_RETCODECONVERT]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement]

原因:

约束冲突异常

 

2、

问题:
2021-01-06 19:17:22.971 ERROR 8712 --- [io-13000-exec-2] c.y.w.c.GlobalControllerExceptionHandler : Exception: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: org.springframework.ui.ModelMap["data"]->cn.yihuazt.atmp.entity.areacode.AreaCode$HibernateProxy$7WugFhzV["hibernateLazyInitializer"])
原因:
 /**
     * 修改地区码
     *
     * @param areaCodeForm
     * @return
     */
    @ApiPermission
    @PutMapping("/update")
    public ModelMap updateAreaCode(@RequestBody AreaCodeForm areaCodeForm) {
        ModelMap modelMap = new ModelMap();
        try {
            AreaCode areaCode1 = areaCodeService.getById(areaCodeForm.getId());
            if (areaCode1 != null) {
                AreaCode areaCode = areaCodeService.save(toEntity(areaCodeForm));
                modelMap.put(FishConstant.SUCCESS, true);
                modelMap.put(FishConstant.DATA, areaCode);
            } else {
                modelMap.put(FishConstant.SUCCESS, false);
                modelMap.put(FishConstant.ERROR_MSG, "修改失败,地区码不存在");
                return modelMap;
            }
        } catch (JpaObjectRetrievalFailureException e) {
            logger.error("修改失败:[" + e.getMessage() + "]");
            modelMap.put(FishConstant.SUCCESS, false);
            modelMap.put(FishConstant.ERROR_MSG, "修改失败,地区码不存在,请刷新页面");
            return modelMap;
        } catch (Exception e) {
            logger.error("修改失败:[" + e.getMessage() + "]");
            modelMap.put(FishConstant.SUCCESS, false);
            modelMap.put(FishConstant.ERROR_MSG, "修改失败");
            return modelMap;
        }
        return modelMap;
    }
}

解决:
 /**
     * 修改地区码
     *
     * @param areaCodeForm
     * @return
     */
    @ApiPermission
    @PutMapping("/update")
    public ModelMap updateAreaCode(@RequestBody AreaCodeForm areaCodeForm) {
        ModelMap modelMap = new ModelMap();
        try {
            AreaCode areaCode1 = areaCodeService.getById(areaCodeForm.getId());
            if (areaCode1 != null) {
                AreaCode areaCode = areaCodeService.update(toEntity(areaCodeForm));
                modelMap.put(FishConstant.SUCCESS, true);
                modelMap.put(FishConstant.DATA, areaCode);
            } else {
                modelMap.put(FishConstant.SUCCESS, false);
                modelMap.put(FishConstant.ERROR_MSG, "修改失败,地区码不存在");
                return modelMap;
            }
        } catch (JpaObjectRetrievalFailureException e) {
            logger.error("修改失败:[" + e.getMessage() + "]");
            modelMap.put(FishConstant.SUCCESS, false);
            modelMap.put(FishConstant.ERROR_MSG, "修改失败,地区码不存在,请刷新页面");
            return modelMap;
        } catch (Exception e) {
            logger.error("修改失败:[" + e.getMessage() + "]");
            modelMap.put(FishConstant.SUCCESS, false);
            modelMap.put(FishConstant.ERROR_MSG, "修改失败");
            return modelMap;
        }
        return modelMap;
    }
}


3、

问题:
2021-01-06 19:25:27.434 ERROR 6368 --- [io-13000-exec-4] c.y.w.c.GlobalControllerExceptionHandler : Exception: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: org.springframework.ui.ModelMap["data"]->cn.yihuazt.atmp.entity.areacode.AreaCode$HibernateProxy$pnyIGUVh["hibernateLazyInitializer"])

解决:

实体类上添加
@JsonIgnoreProperties({"hibernateLazyInitializer","handler"})

nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionExceptionJackson库中的一个异常,表示在序列化或反序列化过程中遇到了无效的定义。 Jackson是一种用于JSON处理的Java库,它可以将Java对象转换为JSON格式,并将JSON格式转换为Java对象。在使用Jackson进行序列化或反序列化时,如果遇到了无效的定义,就会抛出InvalidDefinitionException异常。 这个异常通常是由以下情况引起的: 1. 缺少被序列化/反序列化的Java类的定义。在Java对象与JSON对象之间的转换中,需要有对应的Java类定义来指定要序列化/反序列化的属性和方法,如果缺少了这些定义,就会抛出InvalidDefinitionException异常。 2. Java类中的属性或方法与JSON对象中的属性或方法不匹配。在进行Java对象与JSON对象之间的转换时,Jackson需要确保Java类中的属性或方法与JSON对象中的属性或方法是相匹配的,如果不匹配,就会抛出InvalidDefinitionException异常。 为解决这个问题,我们可以采取以下措施: 1. 确保所有参与转换的Java类都有正确的定义,并且与JSON对象中的属性和方法相匹配。 2. 检查Java类中是否有缺少的属性或方法定义,如果有,及时添加。 3. 使用Jackson的注解或配置来显式指定属性和方法的转换规则,以确保匹配。 4. 如果可能,升级Jackson库的版本,以解决可能存在的Bug。 总之,nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionExceptionJackson库中的一个异常,表示在序列化或反序列化过程中遇到了无效的定义。我们可以通过检查和修正Java类的定义,使用Jackson提供的注解和配置,以及升级Jackson库的版本等方式来解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值