在 REST 控制器中,我需要调用 REST 来获取一个值,该值将用作第二个 REST 调用的 URI 变量。
@PostMapping
public void abbina(@RequestBody DocumentsUploadRequest documentsUploadRequest) {
Mono<GetResult> result = WebClient
.create(url)
.get()
.....
.retrieve()
.bodyToMono(GetResult.class)
;
WebClient.post()
.uri(...)
.path("/{partita}")
.build(result.block().getValue()))
.....
.bodyToMono(PostResult.class)
....
}
问题是 WebFlux REST 在单声道/通量上不可能调用块。
代码抛出
java.lang.IllegalStateException block()/blockFirst()/blockLast() 是阻塞的,线程reactor-http中不支持
我试图改变
.build(result.block().getValue()))
和
.build(result.share().block().getValue()))
但现在问题是result.share().block()无限期挂起。