在休息请求中,我使用Spring WebClient将另一个请求发送到Web服务,并想将结果返回给调用者:
return webClient.post()
.uri(url)
.body(...)
.retrieve()
.bodyToMono(String::class.java)
.map { ResponseEntity.ok(it) }
现在,Web服务返回了HTTP错误状态代码,我收到以下错误:
java.lang.IllegalStateException: Only one connection receive subscriber allowed.
返回状态码200时,不会引发任何错误.
我还尝试检查状态并自己引发异常,但是行为仍然相同:
return webClient.post()
.uri(url)
.body(...)
.retrieve()
.onStatus(HttpStatus::isError) { clientResonse ->
clientResonse.bodyToMono(String::class.java)
.map { RuntimeException(it) }
}
.bodyToMono(String::class.java)
.map { ResponseEntity.ok(it) }
我究竟做错了什么?
代码示例在Kotlin中,但我认为每个Java开发人员都可以阅读它:)
最佳答案