首页 > 数据库 >【异常】nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/util/SafeEncoder

【异常】nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/util/SafeEncoder

时间:2024-06-20 17:31:38浏览次数:26  
标签:lang exception java support redis springframework beans org

原因是 版本冲突。以下我原本使用的版本信息
<!-- Spring Boot Redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.1.8.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.1.0</version>
</dependency>

检查spring-boot-starter-data-redis,使用的是 2.9.3。如下:

 


解决方法:

修改版本,与 spring-boot-starter-data-redis 一致为 2.9.3
<!-- Spring Boot Redis 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.1.8.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.3</version>
</dependency>
补充:
以上解决方式,同样适用于如下错误:
Caused by: java.lang.NoClassDefFoundError: redis/clients/util/Pool

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jedisConnectionFactory' defined in class path resource [spring-redis.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.redis.connection.jedis.JedisConnectionFactory]: No default constructor found; nested exception is java.lang.NoClassDefFoundError: redis/clients/util/Pool
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1270)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863)
at org.springframework.context.support.AbstractApplicationContext.__refresh(AbstractApplicationContext.java:546)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:400)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_42697074/article/details/103818612

标签:lang,exception,java,support,redis,springframework,beans,org
From: https://www.cnblogs.com/fswhq/p/18138186

相关文章

  • 高级前端开发需要知道的 25 个 JavaScript 单行代码
    1.不使用临时变量来交换变量的值例如我们想要将 a 于 b 的值交换leta=1,b=2;//交换值[a,b]=[b,a];//结果:a=2,b=1这行代码使用数组解构赋值的方式来交换两个变量的值,无需定义新的临时变量。这个巧妙的技巧可让代码看起来更简洁明了。语法[a,b......
  • 1-Java预备
    Java三大版本JavaSE:标准版(桌面程序,控制台开发....)JavaME:嵌入式开发(手机,小家电...)这个已经死掉了JavaEE:E企业级开发(web端,服务器开发...)JDKJREJVMJDK:JavaDevelopmentKit(Java开发者工具包含JRE,JVM)JRE:JavaRuntimeEnvironment(运行环境)JVM:JAVAVirtualMachine(虚拟机)J......
  • java基于SpringBoot+Vue的失踪人员信息发布与管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • Java学习 (四) 面向对象--类与方法
    关于面向对象的知识点1、java类以及类成员      属性      方法      构造器      代码块      内部类2、面向对象特征      封装      继承      多态3、 其他关键字使用    this\super\p......
  • java @TableField(exist = false) 和@TableField(select = false) 的区别
    @TableField(exist=false)和@TableField(select=false)都是MyBatis-Plus框架中用于标注实体类字段与数据库表字段映射关系的注解,但它们的作用有所不同:1.@TableField(exist=false)这个注解表示该字段在数据库表中不存在。当使用MyBatis-Plus的自动注入SQL语句功能......
  • JavaScript中 Map与reduce的应用
    1.Map:映射新世界Map构造函数创建一个新Map对象,它允许你以键值对的形式存储数据,提供了一种更加灵活的数据结构。与传统的对象相比,Map允许任何值(包括对象)作为键,而且具有更好的性能表现。应用场景:数据转换需要将数组其中每个元素通过某种规则转换为新值时,Map方法就显得尤为......
  • java insert数组到postgres数据库
    数组格式在数据库中并不是常用操作,比较常用的是字符串存储后,使用时再进行数据加工.这里记录下直接操作postgresinsert数组的数据操作.表结构CREATETABLEschema.table( report_rowsjsonNULL, series_varcharNULL)实际存在两种数组结构:1字符串数组2json数组.js......
  • 【AOP问题处理】:AopContext.currentProxy()方法异常处理:java.lang.IllegalStateExcept
    原因是代理对象内部方法的调用不会触发AOP代理。先看代码:自定义了一个注解:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;//使用元注解......
  • 构建网络图 (JavaScript)
    前序:在工作中难免有一些千奇百怪的需求,如果你遇到构建网络图,或者学习应对未来,请看这边文章,本文以代码为主。网络图是数据可视化中实用而有效的工具,特别适用于说明复杂系统内的关系和连接。这些图表有助于理解各种背景下的结构,从社交网络到企业层级。在本教程中,我们将深入研究......
  • JavaScript工具函数助力高效开发
    JavaScript工具函数助力高效开发前言日常开发中,面对各种不同的需求,我们经常会用到以前开发过的一些工具函数,把这些工具函数收集起来,将大大提高我们的开发效率1.校验数据类型export const typeOf = function(obj) {  return Object.prototype.toString.call(obj).sl......