NoSuchMethodError redis.clients.jedis.Jedis.expire([BI)Ljava/lang/Long;
NoSuchMethodError redis.clients.jedis.Jedis.expire([BI)Ljava/lang/Long;
·
在对SpringBoot项目升级的时候,把2.1.8.RELEASE 升级到了 2.3.2.RELEASE ,运行后发现,
在获取在线用户的时候,报了一个错误:
NoSuchMethodError redis.clients.jedis.Jedis.expire([BI)Ljava/lang/Long;
这里调的方法是业务里获取在线用户的方法,
项目引入了 Shiro ,引入了Shiro-redis 这个开源项目
<dependency>
<groupId>org.crazycake</groupId>
<artifactId>shiro-redis</artifactId>
<version>3.2.3</version>
</dependency>
Debug 发现 ,底层调用了 scanResult.getStringCursor() 这个方法
而SpringBoot 2.3 依赖的jedis 的版本为 3.1,已经改为 public String getCursor() 这个方法了 ,没有了 2.9.3 getStringCursor() 方法
解决方法
由于 Shiro-redis 已经不再维护了,那么只能手动引入 jedis的 2.9.3 版本
在pom.xml
<properties>
<jedis.version>2.9.3</jedis.version>
</properties>
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)