java - 无法转换到类 org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker

标签 java spring-boot spring-cloud resilience4j

我在 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]
有谁知道出了什么问题?

最佳答案

我最近遇到了同样的问题。这是我解决问题的方法:
我使用 Resilience4JCircuitBreakerFactory 来创建断路器。

@Autowired
private Resilience4JCircuitBreakerFactory circuitBreakerFactory;

...

CircuitBreaker checkStockWithCircutBreaker = circuitBreakerFactory.create("inventory");
一旦我添加了 spring-cloud-starter-sleuth 依赖项,这不起作用。使用抽象类 CircuitBreakerFactory 以便 Spring 自动注入(inject)可用的正确 CircuitBreakerFactory 实例
@Autowired
private CircuitBreakerFactory circuitBreakerFactory;

...

CircuitBreaker checkStockWithCircutBreaker = circuitBreakerFactory.create("inventory");

关于java - 无法转换到类 org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JCircuitBreaker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66441321/

相关文章:

java - 无法使用 Gradle 配置 Spring AOP

Spring Cloud Streams - 源和接收器的多个动态目的地

spring-boot - Spring 和 Kafka - 具有相同组 ID 的多个消费者 - 只有一个消费者收到消息

java - 身份验证 firebase 在注销后记住我

java - 如何告诉 Maven 使用最新版本的依赖项?

java - j2ee session 迁移和 session 复制

gradle - spring-boot-gradle-plugin 打破依赖缓存策略

java - 微服务和 jpa

java - Spring配置服务器找不到纯文本文件

java.io.IOException : mark/reset not supported