WebClient реактор.core.Exceptions $ ErrorCallbackNotImplemented - PullRequest
0 голосов
/ 06 февраля 2020

Итак, у меня есть следующий фрагмент кода для выполнения GET на удаленной машине:

webClient.get()
            .uri(myUri)
            .accept(MediaType.APPLICATION_JSON)
            .retrieve()
            .bodyToMono(String.class)
            .subscribe(text -> {
                LOG.info(text);
            });

Я получаю это исключение, нет проблем, я ожидаю его, но действительно трудно найти какой-либо документация о том, как обрабатывать эти ошибки:

reactor.core.Exceptions$ErrorCallbackNotImplemented: java.net.UnknownHostException

1 Ответ

0 голосов
/ 06 февраля 2020

Для обработки этих исключений вам нужно добавить следующее, адаптировать его к вашему случаю (в моем случае, если я получаю исключение unkownHostException, я просто регистрирую предупреждение о том, что запрошенная служба отсутствует:

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);
            });

Вы обрабатываете ошибку и отправляете что-то на следующий шаг. Я действительно ... sh был способ остановиться на этом и не пропустить ничего по трубе.

...