gpt4 book ai didi

java - Spring Cloud 合约 - Feign Client

转载 作者:行者123 更新时间:2023-12-01 08:47:46 26 4
gpt4 key购买 nike

使用Spring云合约来验证我的生产者和消费者之间的合约。在我的消费者 Controller 中,我使用 Feign 客户端调用另一个微服务方法来获取一些数据。但现在在 Spring Cloud 合约中,对该微服务进行 stub 调用是不可能的。

将 Spring Cloud 与 Netflix OSS 结合使用。

配置服务和 Eureka 已启动。现在我在本地8090端口安装了生产者。消费者使用Feign客户端调用生产者来获取一些数据。现在我收到 500 错误。它显示未找到该 URL。最接近的匹配是/ping。我相信 Feign 客户端无法模拟,它以某种方式尝试与 eureka 连接,而不是来自本地安装的生产者。你能帮我吗?

任何例子或任何想法都会很棒。

谢谢

最佳答案

有可能,这是我的 JUnit 测试(ParticipantsService 使用 Feign 客户端)

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureStubRunner(ids = {"com.ryanjbaxter.spring.cloud:ocr-participants:+:stubs"}, workOffline = true)
@DirtiesContext
@ActiveProfiles("test")
public class OcrRacesApplicationTestsBase {

@Autowired
protected ParticipantsService participantsService;

private List<Participant> participants = new ArrayList<>();


//Hack to work around https://github.com/spring-cloud/spring-cloud-commons/issues/156
static {
System.setProperty("eureka.client.enabled", "false");
System.setProperty("spring.cloud.config.failFast", "false");
}

@Before
public void setup() {
this.participants = new ArrayList<>();
this.participants.add(new Participant("Ryan", "Baxter", "MA", "S", Arrays.asList("123", "456")));
this.participants.add(new Participant("Stephanie", "Baxter", "MA", "S", Arrays.asList("456")));
}

@After
public void tearDown() {
this.participants = new ArrayList<>();
}

@Test
public void contextLoads() {
List<Participant> participantList = participantsService.getAllParticipants();
assertEquals(participants, participantList);
}
}

关于java - Spring Cloud 合约 - Feign Client,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571540/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com