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(“遇到异常”)
)继续,从而不传递任何内容。