You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring WebFlux(R2DBC)项目引入Spring Cloud Sleuth启动失败求助

问题解决步骤

1. 修复版本兼容性问题

Spring Cloud Sleuth旧版本(如Hoxton及更早)与Java 17、Spring WebFlux/R2DBC生态存在兼容性冲突,org.springframework.cloud.commons.httpclient.HttpClientConfiguration类在新版Spring Cloud Commons中已被重构或移除。建议升级到**Spring Cloud 2022.0.x(Kilburn)**及以上版本,该系列版本原生支持Java 17,且适配WebFlux/R2DBC环境。

在Maven的pom.xml中指定兼容的依赖管理版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2022.0.4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2. 解决JMX缺失类问题

Java 17移除了javax.management.remote.rmi.RMIServerImpl_Skel等废弃JMX类,旧版Sleuth可能依赖这些类实现监控功能。处理方式二选一:

  • 直接升级到步骤1中兼容Java 17的Sleuth版本,新版已替换掉对废弃JMX类的依赖;
  • 若必须保留旧版Sleuth,手动添加JMX远程模块依赖:
<dependency>
    <groupId>com.sun.jmx</groupId>
    <artifactId>jmxremote</artifactId>
    <version>1.0.1_04</version>
    <scope>runtime</scope>
</dependency>

3. 处理KeyStore名称为空问题

该问题源于Sleuth默认HTTP客户端配置在WebFlux环境下未正确初始化,可通过两种方式解决:

  • 显式禁用Sleuth的HTTP客户端自动配置,在application.yml中添加:
    spring:
      autoconfigure:
        exclude: org.springframework.cloud.sleuth.instrument.web.client.TraceWebClientAutoConfiguration
    
  • 手动配置带追踪功能的WebClient,确保KeyStore参数正常加载:
    @Configuration
    public class SleuthWebClientConfig {
        @Bean
        public WebClient.Builder tracedWebClientBuilder(TraceWebClientCustomizer customizer) {
            WebClient.Builder builder = WebClient.builder();
            customizer.customize(builder);
            return builder;
        }
    }
    

4. 精简依赖模块

避免引入不必要的Sleuth组件,若仅需WebFlux环境下的追踪,只保留相关模块:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-sleuth-instrumentation</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-sleuth-webflux</artifactId>
</dependency>

内容的提问来源于stack exchange,提问作者SRJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:55:03