Как сделать исключение возврата клиента 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();
}
Давный класс предиката

Код: Выделить всё

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>
Я не мог переопределить это поведение с помощью декодера Acustom или глобального обработчика исключений. < /p>
Какой лучший способ обойти это при использовании @Client 
?
Спасибо

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

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

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

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

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

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