Есть ли способ конвертировать моно объекты в Java Pojo?У меня есть веб-клиент, подключающийся к сторонней REST-службе, и вместо возврата Mono
я должен извлечь этот объект и запросить его.
Все найденные примеры возвращают Mono<Pojo>
, но я должен получитьСам Пойо.В настоящее время я делаю это, вызывая block()
в Pojo, но есть ли лучший способ избежать блока?
Проблема с блоком заключается в том, что после нескольких запусков он начинает выдавать какую-то ошибку, например, блок Завершено с ошибкой.
public MyPojo getPojo(){
return myWebClient.get()
.uri(generateUrl())
.headers(createHttpHeaders(headersMap))
.exchange()
.flatMap(evaluateResponseStatus())
.block();
}
private Function<ClientResponse, Mono<? extends MyPojo>> evaluateResponseStatus() {
return response -> {
if (response.statusCode() == HttpStatus.OK) {
return response.bodyToMono(MyPojo.class);
}
if (webClientUtils.isError(response.statusCode())) {
throw myHttpException(response);
// This invokes my exceptionAdvice
// but after few runs its ignored and 500 error is returned.
}
return Mono.empty();
};
}