Java WebClient reactor.core.Exceptions$ErrorCallbackNotImplemented
因此,我有以下代码来访问远程机器:Java WebClient reactor.core.Exceptions$ErrorCallbackNotImplemented,java,spring,webclient,Java,Spring,Webclient,因此,我有以下代码来访问远程机器: webClient.get() .uri(myUri) .accept(MediaType.APPLICATION_JSON) .retrieve() .bodyToMono(String.class) .subscribe(text -> { LOG.info(text); })
webClient.get()
.uri(myUri)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(String.class)
.subscribe(text -> {
LOG.info(text);
});
我得到了这个异常,没问题,我期待着它,但是很难找到任何文档来处理这些错误:
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.net.UnknownHostException
要处理这些异常,您需要添加以下内容,使其适应您的情况(在我的情况下,如果我得到一个UnknownHostException,我只需记录一个警告,说明请求的服务不存在:
webClient.get()
.uri(myUri)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(String.class)
.onErrorResume(e -> {
if (e instanceof UnknownHostException) {
LOG.warn("Failed to get myStuff, desired service not present");
} else {
LOG.error("Failed to get myStuff");
}
return Mono.just("Encountered an exception");
})
.subscribe(text -> {
LOG.info(text);
});
您可以处理错误,并将某些内容发送到下一步。我真希望有一种方法可以到此为止,而不是将任何内容传递到管道。您可以始终使用
Mono.empty()
(而不是Mono.just(“遇到异常”)
)继续,从而不传递任何内容。