Mono zip и обработка исключений

как правильно собрать из удаленных сервисов обобщающий класс с использованием Mono zip, если у одной или нескольких получил исключение/ошибку?

                .uri(uriBuilder -> uriBuilder.path("/app/hgt")
                        .build())
                .retrieve()
DataNotFoundException(error->error)))
                .onStatus(
                        HttpStatusCode::isError,
                        clientResponse ->
                                clientResponse
                                        .bodyToMono(String.class)
                                        .flatMap(
                                                errorResponseBody ->
                                                        Mono.error(
                                                                new DataNotFoundException(errorResponseBody)
                                                        ))
                )
                .bodyToMono(HGTDto.class)
                .onErrorResume(throwable -> {
                    if (throwable instanceof DataNotFoundException) {
                        HGTDto data = HGTDto.builder().status("inActive").exceptionMessage(throwable.getMessage()).build();
                        return Mono.just(data);
//                        return Mono.error(new DataNotFoundException(throwable.getMessage()));
                    } else throw new RuntimeException("qwerty!");
                })
                .log()

может не в onErrorResume должен собрать HGTDto, но все же... а далее в зип делаю что то вроде этого

   Mono<HGTDto> hgtServiceData = hgtService.getData()
   ....
   return Mono.zip(hgtServiceData, ...,...,...).map(this::combine);

в итоге получаю ничего...


Ответы (0 шт):