用springcloud 2.0连接低于3.5.x的注册中心存在的问题
“org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘propertySourceBootstrapConfiguration’: Unsatisfied dependency expressed through field ‘propertySourceLocators’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘zookeeperPropertySourceLocator’ defined in org.springframework.cloud.zookeeper.config.ZookeeperConfigBootstrapConfiguration: Unsatisfied dependency expressed through method ‘zookeeperPropertySourceLocator’ parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘curatorFramework’ defined in org.springframework.cloud.zookeeper.ZookeeperAutoConfiguration: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.curator.framework.CuratorFramework]: Factory method ‘curatorFramework’ threw exception; nested exception is java.lang.NoSuchMethodError: org.apache.zookeeper.ZooKeeper.(Ljava/lang/String;ILorg/apache/zookeeper/Watcher;Z)V”
原因是“
Curator 4.0 has a hard dependency on ZooKeeper 3.5.x
If you are using ZooKeeper 3.5.x there’s nothing additional to do - just use Curator 4.0”
意思是spring cloud默认使用的curator版本是4.0,但是4.0的版本只支持3.5.x以上的zookeeper注册中心
解决方案一、
改变spring cloud的版本,不推荐
解决方案二
改变zookeeper版本,讲zookeeper升级为最新版