在调用spring-boot+dubbo的时候,引用了 dubbo-spring-boot-starter包,引用的是1.0.0-SNAPSHOT版本,结果后续该版本升级了,团队成员对该包做了一个更新,结果在启动的工程的时候,各种注册不了dubbo服务。
引用的dubbo-spring-boot-starter:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
造成的现象:
1、springtboot工程启动后,在dubbo管控台上,找不到相应的提供者、找不到消费者。
2、报的错误:java.lang.NoClassDefFoundError: org/I0Itec/zkclient/IZkStateListener
3、A component required a bean of type '' that could not be found.
总之来说,就是找不到dubbo对象。
修改内容:
1、在Application文件中,添加注解:
@EnableDubbo
2、在properties文件中添加?client=zkclient
dubbo.registry.address=zookeeper://zookeeper-test:2181?client=zkclient
集群地址:
dubbo.registry.address=zookeeper://zookeeper-test_01:2182?client=zkclient&backup=zookeeper-test_02:2183,zookeeper-test_03:2184
3、在pom.xml文件中,添加zkclient的包。
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
其中 client=zkclient 的含义,请查看:https://blog.csdn.net/smilehappiness/article/details/105938058