Если я понимаю ваш вопрос в контексте сбоя соединения из-за учетных данных SSL, то вы должны увидеть манифест исключения соединения в ответе REST.
Вы можете позаботиться об этом исключении через Flux
результат, который вы получите на WebClient.ResponseSpec#onStatus
. Документы для #onStatus
говорят:
Зарегистрируйте пользовательскую функцию ошибки , которая вызывается при заданном
* Предикат HttpStatus
применяется. Исключение, возвращаемое из функции
будут возвращены с bodyToMono(Class)
и bodyToFlux(Class)
. От
по умолчанию обработчик ошибок - это регистр, который выдает
WebClientResponseException
когда код состояния ответа 4xx или
5xx .
Взгляните на этот пример :
Mono<Person> result = client.get()
.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.onStatus(HttpStatus::is4xxServerError, response -> ...) // This is in the docs there but is wrong/fatfingered, should be is4xxClientError
.onStatus(HttpStatus::is5xxServerError, response -> ...)
.bodyToMono(Person.class);
Аналогично для вашего вопроса, ошибка соединения должна проявиться после того, как вызов сделан, и вы можете настроить, как он распространяется в реактивном конвейере:
Mono<Person> result = client.get()
.uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON)
.retrieve()
.onStatus(HttpStatus::is4xxClientError, response -> {
... Code that looks at the response more closely...
return Mono.error(new MyCustomConnectionException());
})
.bodyToMono(Person.class);
Надеюсь, это поможет.