将 spring-cloud-sleuth 添加到类路径时出现“上下文初始化”错误

Posted

技术标签:

【中文标题】将 spring-cloud-sleuth 添加到类路径时出现“上下文初始化”错误【英文标题】:getting 'Context Initialization' error when adding spring-cloud-sleuth to classpath 【发布时间】:2018-09-13 04:09:52 【问题描述】:

下面提供了引用 spring-cloud-sleuth 的构建文件部分。

dependencyManagement 
  imports 
        //where springCloudVersion = "Dalston.SR5" & springBootVersion = '1.5.9.RELEASE'

    mavenBom "org.springframework.cloud:spring-cloud-dependencies:$springCloudVersion"
  
 
//in dependencies, added the following line
compile 'org.springframework.cloud:spring-cloud-starter-sleuth'

添加此依赖后,应用启动失败,出现如下异常(基于cmets添加)

support.AbstractApplicationContext (AbstractApplicationContext.java:551) - 
Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'misds': 
Could not bind properties to HikariDataSource (prefix=mis.datasource, ignoreInvalidFields=false, ignoreUnknownFields=true, ignoreNestedProperties=false); nested exception is org.springframework.validation.BindException: org.springframework.boot.bind.RelaxedDataBinder$RelaxedBeanPropertyBindingResult: 4 errors
Field error in object 'mis.datasource' on field 'driverClassName': rejected value [oracle.jdbc.OracleDriver]; 
codes [methodInvocation.mis.datasource.driverClassName,methodInvocation.driverClassName,methodInvocation.java.lang.String,methodInvocation]; 
arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [mis.datasource.driverClassName,driverClassName]; 
arguments []; default message [driverClassName]]; default message [Property 'driverClassName' threw exception; 
nested exception is java.lang.IllegalStateException: The configuration of the pool is sealed once started.  
Use HikariConfigMXBean for runtime changes.]

我使用 slf4j over log4j 来记录框架,当我删除 sleuth 依赖项时,应用程序运行良好。

我注意到,当包含 spring-cloud 依赖项时,会出现以下 'additional' 属性源。

env.MutablePropertySources (MutablePropertySources.java:106) - Adding PropertySource 'springCloudClientHostInfo' with lowest search precedence
env.MutablePropertySources (MutablePropertySources.java:106) - Adding PropertySource 'defaultProperties' with lowest search precedence
env.MutablePropertySources (MutablePropertySources.java:106) - Adding PropertySource 'Management Server' with lowest search precedence

【问题讨论】:

Dalston.SR5 非常老了。请升级到Edgware.SR3,看看问题是否仍然存在 同时添加完整的例外 感谢@MarcinGrzejszczak,edgeware 升级成功。我的错误印象是只有 Dalston 与 Boot 【参考方案1】:

请务必检查最新版本是否无法解决您的问题。老实说,我真的不知道哪个问题与这个问题有关:/ Edgware release train 与 Boot 兼容

【讨论】:

以上是关于将 spring-cloud-sleuth 添加到类路径时出现“上下文初始化”错误的主要内容,如果未能解决你的问题,请参考以下文章

spring-cloud-sleuth简单使用

spring-cloud-sleuth与spring-amqp集成

低版本spring-cloud-sleuth的TraceableExecutorService一个坑,注意绕行

spring cloud zipkin

SpringCloud实战-Sleuth

Sleuth+Zipkin 服务链路追踪