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

添加OpenFeign依赖后Spring Cloud Contract测试失败如何解决?

问题原因

这个报错并非OpenFeign与Spring Cloud Contract的直接冲突,核心原因是:Spring Cloud Contract Stub Runner的自动配置会尝试创建StubRunnerReactiveDiscoveryClient Bean,但你的项目基于Servlet(非Reactive)技术栈,缺少Reactor核心依赖(reactor-core),导致找不到Flux类。

解决方案

以下三种方案任选其一即可解决问题:

方案1:排除Reactive相关自动配置

在测试类或配置中,排除Stub Runner的Reactive自动配置类,避免触发相关Bean的创建:

方式A:在测试类上添加注解

@SpringBootTest
@EnableAutoConfiguration(exclude = StubRunnerReactiveDiscoveryClientAutoConfiguration.class)
public class YourContractTestClass {
    // 测试代码逻辑
}

方式B:在测试环境配置文件中添加排除(推荐)

在src/test/resources/application-test.yml中添加:

spring:
  autoconfigure:
    exclude: org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerReactiveDiscoveryClientAutoConfiguration

方案2:引入Reactor依赖(适合允许添加Reactive栈的项目)

如果项目不排斥引入Reactive相关依赖,可以直接添加spring-boot-starter-webflux(仅在测试环境引入即可):

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
    <scope>test</scope>
</dependency>

方案3:禁用Stub Runner的Reactive功能

通过配置属性关闭Stub Runner的Reactive发现客户端支持:
在src/test/resources/application-test.yml中添加:

stubrunner:
  reactive:
    enabled: false
补充说明

Spring Cloud Contract与OpenFeign本身不存在已知的兼容性冲突,这个问题属于Stub Runner自动配置在非Reactive项目中的适配问题,通过上述配置调整即可让两者正常协同工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:48:15