springBoot整合dubbo的好处是可以放弃xml配置,可以使用注解的方式配置dubbo
整合过程中报了一个错,找了半天,发现是zookeeper依赖包里重复依赖了不同版本的zookeeper包,直接排除掉就好了。
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.apache.curator.framework.imps.EnsembleTracker.<init>(EnsembleTracker.java:57)
The following method did not exist:
org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(Ljava/util/Map;)V
The method's class, org.apache.zookeeper.server.quorum.flexible.QuorumMaj, is available from the following locations:
jar:file:/D:/mavenLocalRepository/org/apache/zookeeper/zookeeper/3.4.13/zookeeper-3.4.13.jar!/org/apache/zookeeper/server/quorum/flexible/QuorumMaj.class
The class hierarchy was loaded from the following locations:
org.apache.zookeeper.server.quorum.flexible.QuorumMaj: file:/D:/mavenLocalRepository/org/apache/zookeeper/zookeeper/3.4.13/zookeeper-3.4.13.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.apache.zookeeper.server.quorum.flexible.QuorumMaj
附上完整的POM依赖,这里版本用的是3.0.4有这个问题,目前的最高版本
<properties>
<spring-boot.version>2.3.1.RELEASE</spring-boot.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<!-- dubbo的starter 包含了核心的依赖 -->
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<!--dubbo的注册中心是单独的一个包并没有集成在starter里,说明zookeeper是一个可选项,dubbo还可以使用其他注册中心 -->
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-zookeeper</artifactId>
<version>3.0.4</version>
<exclusions>
<!--这里要排除掉dubbo-remoting-zookeeper这个包,
因为里边还依赖了dubbo-remoting-zookeeper-curator5可以用 -->
<exclusion>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-remoting-zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.apache.dubbo</groupId>-->
<!-- <artifactId>dubbo-registry-zookeeper</artifactId>-->
<!-- <version>2.7.14</version>-->
<!-- </dependency>-->
</dependencies>