【发布时间】:2021-10-15 06:31:08
【问题描述】:
我在 Spring Boot 中有一个使用 Spring Webflux 的基于 REST API 的应用程序。像往常一样,REST 调用流程如下所示:
RestController -> 服务 -> 另一个微服务(REST 调用)
Service 类使用WebClient 对另一个服务进行HTTP 调用并返回Mono,例如:
private Mono<SubmissionResponse> submit(Submission mySubmission) {
Mono<Void> 201Response = webClient
.post()
.uri("/submit")
.body(Mono.just(mySubmission), Submission.class)
.retrieve()
.onStatus(status -> status.equals(HttpStatus.NOT_FOUND), resp -> Mono.just(new SubmissionNotFoundException("No Submission found", HttpStatus.NOT_FOUND.name())))
.bodyToMono(Void.class);
return 201Response.map(r -> myResponseGenerator.generateResponse(mySubmission));
}
我在组件测试期间启动了一个有线模拟服务器。测试用例代码如下:
Mono<SubmissionResponse> submissionResponse = submissionService.submit(mySubmission);
SubmissionResponse response = submissionResponse.block();
在上面的测试用例代码中,响应对象总是null。
【问题讨论】:
标签: spring-webflux spring-webclient