dubbo 报错:java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException

本文详细解析了在使用阿里Dubbo框架时遇到的NoClassDefFoundError异常,尤其针对ZkNoNodeException错误。通过分析异常堆栈,指出问题源于未引入zkclient依赖,并提供了解决方案,即在Maven项目中添加zkclient的jar包引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dubbo 报错:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'goodsConsultController': Unsatisfied dependency expressed through field 'goodsConsultService': Error creating bean with name 'goodsConsultService': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'goodsConsultService': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException

 

解决办法参考:http://www.codingjabber.com/Article/397.html

 

阿里的Dubbo框架已经集成了Zookeeper、Spring等框架所以无须再添加这些框架的引用,但是有一个例外就是zkclient,如果没有引用将会抛出如下异常信息:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

Exception in thread "main" java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException

    at com.alibaba.dubbo.registry.zookeeper.ZookeeperRegistryFactory.createRegistry(ZookeeperRegistryFactory.java:37)

    at com.alibaba.dubbo.registry.support.AbstractRegistryFactory.getRegistry(AbstractRegistryFactory.java:94)

    at com.alibaba.dubbo.registry.RegistryFactory$Adpative.getRegistry(RegistryFactory$Adpative.java)

    at com.alibaba.dubbo.registry.integration.RegistryProtocol.getRegistry(RegistryProtocol.java:190)

    at com.alibaba.dubbo.registry.integration.RegistryProtocol.export(RegistryProtocol.java:109)

    at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:53)

    at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:54)

    at com.alibaba.dubbo.rpc.Protocol$Adpative.export(Protocol$Adpative.java)

    at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:485)

    at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:281)

    at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:242)

    at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:143)

    at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:109)

    at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)

    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)

    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)

    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)

    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)

    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)

    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)

    at com.codingjabber.demo.dubbo.provider.App.main(App.java:15)

Caused by: java.lang.ClassNotFoundException: org.I0Itec.zkclient.exception.ZkNoNodeException

    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)

    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)

    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

    ... 22 more

解决办法就是添加zkclient的jar,maven工程的话增加如下引用:

1

2

3

4

5

<dependency>

    <groupId>com.github.sgroschupf</groupId>

    <artifactId>zkclient</artifactId>

    <version>0.1</version>

</dependency>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值