当前位置: 代码网 > it编程>数据库>Redis > Redis报错UnrecognizedPropertyException: Unrecognized field问题

Redis报错UnrecognizedPropertyException: Unrecognized field问题

2024年11月25日 Redis 我要评论
1. 现象spring boot访问redis,取出对象时报错报错信息:caused by: com.fasterxml.jackson.databind.exc.unrecognizedproper

1. 现象

spring boot访问redis,取出对象时报错

报错信息:

caused by: com.fasterxml.jackson.databind.exc.unrecognizedpropertyexception: unrecognized field "headpart" 
    at com.fasterxml.jackson.databind.exc.unrecognizedpropertyexception.from(unrecognizedpropertyexception.java:61)
    at com.fasterxml.jackson.databind.deserializationcontext.handleunknownproperty(deserializationcontext.java:823)
    at com.fasterxml.jackson.databind.deser.std.stddeserializer.handleunknownproperty(stddeserializer.java:1153)
    at com.fasterxml.jackson.databind.deser.beandeserializerbase.handleunknownproperty(beandeserializerbase.java:1589)
    at com.fasterxml.jackson.databind.deser.beandeserializerbase.handleunknownvanilla(beandeserializerbase.java:1567)
    at com.fasterxml.jackson.databind.deser.beandeserializer.vanilladeserialize(beandeserializer.java:294)
    at com.fasterxml.jackson.databind.deser.beandeserializer.deserialize(beandeserializer.java:151)
    at com.fasterxml.jackson.databind.jsontype.impl.asarraytypedeserializer._deserialize(asarraytypedeserializer.java:116)
    at com.fasterxml.jackson.databind.jsontype.impl.asarraytypedeserializer.deserializetypedfromany(asarraytypedeserializer.java:71)
    at com.fasterxml.jackson.databind.deser.std.untypedobjectdeserializer$vanilla.deserializewithtype(untypedobjectdeserializer.java:712)
    at com.fasterxml.jackson.databind.deser.impl.typewrappeddeserializer.deserialize(typewrappeddeserializer.java:68)
    at com.fasterxml.jackson.databind.objectmapper._readmapandclose(objectmapper.java:4013)
    at com.fasterxml.jackson.databind.objectmapper.readvalue(objectmapper.java:3129)
    at org.springframework.data.redis.serializer.jackson2jsonredisserializer.deserialize(jackson2jsonredisserializer.java:73)
    ... 39 common frames omitted

2. 排查

最开始以为忘了写implements serializable,检查后不是该问题。

然后以为是不是忘了写get set方法,检查后也不是。

最后发现了细节提示:

unrecognized field "headpart"

也就是说识别不了属性headpart

恍然大悟,原来我写了一个方法getheadpart,但是并没有headpart属性

3. 解决

将getheadpart改为makeheadpart即可…

像jackson这种序列化工具是依赖反射来识别方法属性的,get开头的方法容易误导序列化工具。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

  • Redis数据一致性详解

    1、一致性一致性是指系统中各节点数据保持一致。分布式系统中,可以理解为多个节点中的数据是一致的。一致性根据严苛程度分类:强一致性:写进去的数据是什么,读出来的数据就是什么,对性能影…

    2024年11月15日 数据库
  • 为Redis设置密码的三种方法

    为Redis设置密码的三种方法

    前言redis 是一个高性能的键值对数据库,广泛应用于缓存、消息队列等场景。为了保障 redis 服务的安全性,设置密码认证是非常重要的一步。方法一:通过编辑配... [阅读全文]
  • 使用Redis实现数据库对象自增ID的方法

    使用Redis实现数据库对象自增ID的方法

    在分布式项目中,数据表的主键id一般可能存在于uuid或自增id这两种形式,uuid好理解而且实现起来也最容易,但是缺点就是数据表中的主键id是32位的字符串,... [阅读全文]
  • RedisTemplate序列化设置的流程和具体步骤

    RedisTemplate序列化设置的流程和具体步骤

    流程概述下面是整个 redistemplate 序列化设置的流程图:具体步骤1. 创建 redistemplate 实例首先,我们需要创建一个 redistem... [阅读全文]
  • 基于Redis实现API接口访问次数限制

    一,概述日常开发中会有一个常见的需求,需要限制接口在单位时间内的访问次数,比如说某个免费的接口限制单个ip一分钟内只能访问5次。该怎么实现呢,通常大家都会想到用redis,确实通过…

    2024年11月13日 数据库
  • Redis主从复制的实现示例

    Redis主从复制的实现示例

    redis 主从复制主从复制是高可用redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简... [阅读全文]

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com