🙊🙊作者主页:🔗求不脱发的博客
📔📔 精选专栏:🔗Spring
📋📋 精彩摘要:SpringBoot项目整合jetcache时可能遇到版本冲突问题。本文将提供解决方式参考。
💞💞觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论💬支持博主🤞
问题描述:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisAutoInit' defined in class path resource [com/alicp/jetcache/autoconfigure/RedisAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/UnifiedJedis
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1794) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory$$Lambda$167/1076641925.getObject(Unknown Source) ~[na:na]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:311) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:227) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1175) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:420) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at com.alicp.jetcache.anno.field.CreateCacheAnnotationBeanPostProcessor.postProcessProperties(CreateCacheAnnotationBeanPostProcessor.java:64) ~[jetcache-anno-2.7.0.M1.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
... 31 common frames omitted
CabstractCacheAutoInit.afterPropertiesSet(AbstractCacheAutoInit.java:47) ~[jetcache-autoconfigure-2.7.0.M1.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790) ~[spring-beans-5.2.12.RELEASE.jar:5.2.12.RELEASE]
... 51 common frames omitted
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.UnifiedJedis
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_20]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_20]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_20]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_20]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_20]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_20]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_20]
... 56 common frames omitted
主要问题:
Caused by: java.lang.ClassNotFoundException: redis.clients.jedis.UnifiedJedis
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_20]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_20]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_20]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_20]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_20]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_20]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_20]
... 56 common frames omitted
问题原因:
在pom中导入jetcache坐标中的redis与springboot版本冲突导致,
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.7.0.M1</version>
<!--这里版本不唯一,也可能是别的版本-->
</dependency>
解决方法:
更换jetcache坐标版本
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.6.5</version>
<!--这里版本不唯一,别的较高版本也行-->
</dependency>