Как сделать исключение возврата клиента Micronaut для 404 ответа вместо mono.empty ()JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать исключение возврата клиента Micronaut для 404 ответа вместо mono.empty ()

Сообщение Anonymous »

Этот клиент Micronaut возвращает mono.empty () на ответе 404, что означает, что он не запускает повторную попытку выстраивания схемы < /p>
@Client("my-client")
public interface RcsCapabilityClient {
String PATH = "/internal/v1/something";

@Get(PATH)
@CircuitBreaker(attempts = "${my-client-circuitBreaker.attempts}",
delay = "${my-client-clients.circuitBreaker.delay}",
maxDelay = "${my-client-clients.circuitBreaker.maxDelay}",
reset = "${my-client-clients.circuitBreaker.reset}",
predicate = MyClientRetryPredicate.class)
Mono getSomething();
}
< /code>
данный предикат класс < /p>
public class MyClientRetryPredicate implements RetryPredicate {
@Override
public boolean test(Throwable t) {
if (t instanceof HttpClientResponseException e) {
return switch (e.getStatus()) {
case UNPROCESSABLE_ENTITY, BAD_REQUEST, GATEWAY_TIMEOUT, OK -> false;
default -> true;
};
}

if (t instanceof ResponseClosedException) {
return true;
}
if (t instanceof HttpClientException hce) {
return !(hce.getCause() instanceof CodecException);
}
return true;
}
}
< /code>
Я не мог переопределить это поведение с помощью пользовательского декодера или глобального обработчика исключений. < /p>
Каков лучший способ обойти это при использовании Декларативный клиент?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... -of-mono-e
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»