Spring boot 2.0.1 应用程序不以 spring-cloud.version Finchley.RC1 开头,但与 Finchley.M9 一起工作正常
Posted
技术标签:
【中文标题】Spring boot 2.0.1 应用程序不以 spring-cloud.version Finchley.RC1 开头,但与 Finchley.M9 一起工作正常【英文标题】:Spring boot 2.0.1 application does not start with spring-cloud.version Finchley.RC1 but works fine with Finchley.M9 【发布时间】:2018-10-15 03:07:05 【问题描述】:我在使用 spring 云版本 Finchley.RC1 运行 spring boot 2.0.1 应用程序时遇到以下异常,但如果我在 pom.xml 中将版本更改为 Finchley.M9,则工作正常:
<spring-cloud.version>Finchley.RC1</spring-cloud.version>
在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“propertySourceBootstrapConfiguration”的bean时出错:通过字段“propertySourceLocators”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为 'com.company.configmanagement.springboot.autoconfig.CMBootstrapConfiguration$ConsulPropertySourceConfiguration' 的 bean 时出错:通过字段 'configManager' 表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建 com.company.configmanagement.springboot.autoconfig.ConfigManagementAutoConfiguration 中定义的名称为“configManager”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.NoSuchMethodError: com.google.common.base.Splitter.splitToList(Ljava/lang/CharSequence;)Ljava/util/List; | AnnotationConfigApplicationContext:558
org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“propertySourceBootstrapConfiguration”的bean时出错:通过字段“propertySourceLocators”表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为 'com.company.configmanagement.springboot.autoconfig.CMBootstrapConfiguration$ConsulPropertySourceConfiguration' 的 bean 时出错:通过字段 'configManager' 表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建 com.company.configmanagement.springboot.autoconfig.ConfigManagementAutoConfiguration 中定义的名称为“configManager”的 bean 时出错:调用 init 方法失败;嵌套异常是 java.lang.NoSuchMethodError: com.google.common.base.Splitter.splitToList(Ljava/lang/CharSequence;)Ljava/util/List;
【问题讨论】:
您的应用程序所期望的 Guava 版本似乎有些问题。 @spencergibb 感谢您的指点。我发现有一个内部依赖项正在为番石榴提取旧版本。将此版本更改为 23.0 解决了该问题。但是像 25.0-jre 这样的任何最新版本都不起作用。 【参考方案1】:看起来这是一个版本兼容性问题,因为内部依赖项正在拉取 guava 版本 14.0。目前,使用以下版本的依赖解决了这个问题。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
【讨论】:
以上是关于Spring boot 2.0.1 应用程序不以 spring-cloud.version Finchley.RC1 开头,但与 Finchley.M9 一起工作正常的主要内容,如果未能解决你的问题,请参考以下文章
将 Spring Boot 应用程序连接到 Docker 容器中的 Oracle 数据库 12.2.0.1
spring-boot-starter-parent 2.0.1.RELEASE下Spring Boot App立即关闭
spring boot 2.3.0.RELEASE 中的新错误:Oracle 12.2.0.1 jdbcdriver 的 UnsatisfiedDependencyException 但与 mysql
Spring-boot2.0.1.BUILD-SNAPSHOT整合Elasticsearch报failed to load elasticsearch nodes错误解决办法