#spring-webflux
Вопрос:
У меня есть клиент rest, который возвращает объект json. У меня есть другой метод, который вызывает этот метод, преобразует json в мой собственный объект и возвращает его. Я хочу обработать сценарий, в котором json недействителен. Я думаю, что было бы лучше зарегистрировать проблему (в моем случае мне больше ничего не нужно делать) и вернуть Mono.empty (), но я получаю следующую ошибку:
Требуемый тип: Mono MyPOJO, При условии: Монообъект
public Mono<MyPojo> retrieve(String url) {
return Mono
.from(restClient.get(url, String.class))
.map(jsonString -> {
try {
return myPojoMapper.map(jsonString);
} catch (Exception exception) {
log.error("Exception occurred when processing message.", exception);
return Mono.empty()
}
});
}
Ответ №1:
Это и есть решение:
public Mono<MyPojo> retrieve(String url) {
return Mono
.from(restClient.get(url, String.class))
.map(jsonString -> {
try {
return myPojoMapper.map(jsonString);
} catch (Exception exception) {
log.error("Exception occurred when processing message.", exception);
}
}).onErrorResume(e -> Mono.empty());
}