【问题标题】:Cannot be cast to class org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker无法转换为 org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker 类
【发布时间】:2021-06-01 02:39:05
【问题描述】:

我使用的是带有 Gradle 的 Spring Boot 2.4。

这是我定义依赖项的方式:

compile 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j'

它工作正常,但是当我添加时:

implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'

我收到此错误:

java.lang.ClassCastException: class org.springframework.cloud.sleuth.instrument.circuitbreaker.TraceCircuitBreaker cannot be cast to class org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker (org.springframework.cloud.sleuth.instrument.circuitbreaker.TraceCircuitBreaker and org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker are in unnamed module of loader 'app')
        at org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreakerFactory$$EnhancerBySpringCGLIB$$a7735aed.create(<generated>) ~[spring-cloud-circuitbreaker-resilience4j-2.0.0.jar:2.0.0]

有人知道出了什么问题吗?

【问题讨论】:

    标签: java spring-boot spring-cloud resilience4j


    【解决方案1】:

    我最近遇到了同样的问题。这是我解决问题的方法:

    我使用 Resilience4JCircuitBreakerFactory 来创建 CircuitBreaker。

    @Autowired
    private Resilience4JCircuitBreakerFactory circuitBreakerFactory;
    
    ...
    
    CircuitBreaker checkStockWithCircutBreaker = circuitBreakerFactory.create("inventory");
    

    一旦我添加了 spring-cloud-starter-sleuth 依赖项,这将不起作用。使用抽象类 CircuitBreakerFactory 以便 Spring 自动注入适当的可用 CircuitBreakerFactory 实例

    @Autowired
    private CircuitBreakerFactory circuitBreakerFactory;
    
    ...
    
    CircuitBreaker checkStockWithCircutBreaker = circuitBreakerFactory.create("inventory");
    

    【讨论】:

      【解决方案2】:

      如 Spring Cloud Sleuth 文档中所述,您必须禁用 sleuth 断路器。只需在 application.properties 中添加以下属性即可解决:spring.seuth.circuitbreaker.enabled=false

      文档链接如下:Spring Cloud Sleuth documentation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-16
        • 2015-07-14
        • 2013-02-28
        • 2015-01-26
        相关资源
        最近更新 更多