apache / dubbo-spring-boot-project

Spring Boot Project for Apache Dubbo
https://dubbo.apache.org
Apache License 2.0
5.41k stars 1.88k forks source link

找不到 java.lang.ClassNotFoundException: redis.clients.util.Pool #735

Closed yunzhongzhuhuo closed 4 years ago

yunzhongzhuhuo commented 4 years ago

相关依赖包,使用的是springboot 2.3.1

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.7</version>
</dependency>
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-registry-redis</artifactId>
    <version>2.7.7</version>
</dependency>

异常信息:

java.lang.NoClassDefFoundError: redis/clients/util/Pool
    at org.apache.dubbo.registry.redis.RedisRegistry.doRegister(RedisRegistry.java:306)
    at org.apache.dubbo.registry.support.FailbackRegistry.register(FailbackRegistry.java:240)
    at org.apache.dubbo.registry.ListenerRegistryWrapper.register(ListenerRegistryWrapper.java:57)
    at org.apache.dubbo.registry.integration.RegistryProtocol.register(RegistryProtocol.java:182)
    at org.apache.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:218)
    at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:151)
    at org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:60)
    at org.apache.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:64)
    at org.apache.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
    at org.apache.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:492)
    at org.apache.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:325)
    at org.apache.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:300)
    at org.apache.dubbo.config.ServiceConfig.export(ServiceConfig.java:206)
    at org.apache.dubbo.config.bootstrap.DubboBootstrap.lambda$exportServices$16(DubboBootstrap.java:943)
    at java.util.HashMap$Values.forEach(HashMap.java:981)
    at org.apache.dubbo.config.bootstrap.DubboBootstrap.exportServices(DubboBootstrap.java:930)
    at org.apache.dubbo.config.bootstrap.DubboBootstrap.start(DubboBootstrap.java:749)
    at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onContextRefreshedEvent(DubboBootstrapApplicationListener.java:59)
    at org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener.onApplicationContextEvent(DubboBootstrapApplicationListener.java:52)
    at org.apache.dubbo.config.spring.context.OneTimeExecutionApplicationContextEventListener.onApplicationEvent(OneTimeExecutionApplicationContextEventListener.java:40)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
    at com.zhidian.EFactoringApplication.main(EFactoringApplication.java:21)
Caused by: java.lang.ClassNotFoundException: redis.clients.util.Pool
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 35 common frames omitted

原因: 此类org.apache.dubbo.registry.redis.RedisRegistry中的import redis.clients.util.Pool;包导入有误,应该使用import redis.clients.jedis.util.Pool;l

mercyblitz commented 4 years ago

Please add the dependency :

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

instead of

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-registry-redis</artifactId>
    <version>2.7.7</version>
</dependency>