Spring-Webflux: Flatmap делает список пустым

#java #kotlin #reactive-programming #spring-webflux

#java #kotlin #реактивное программирование #spring-webflux

Вопрос:

Я использую реактивное программирование с Webflux для написания моего REST api. У меня есть объект ответа ниже, подобный этому:

 class Account
{
  private Customer customer;
  private List<Accounts> accountList;

}
  

Я настраиваю customer и accountList, используя методы получения и настройки. Я вижу, что оба заполнены правильно, но мой окончательный ответ всегда возвращается с правильным «Клиентом», но это пустой список учетных записей, хотя я могу видеть данные в списке учетных записей.

 return request
            .bodyToMono(PersonRequest.class)
            .doOnNext { logger.info("Request : $it") }
            .flatMap(validateRequest(it))
            .flatMap(personService::getPerson)
            .doOnNext (logger.info("Final Response : $it"))
           .flatMap(ServerResponse.ok().contentType(MediaType.APPLICATION_JSON)::bodyValue);
  

Что я здесь делаю не так? Я вижу, что журнал «Окончательный ответ» печатается правильно, но после этого я вижу пустой список в моем ответе JSON.

Комментарии:

1. метод запроса post ValidateRequest

2. Он просто проверяет входящие запросы, например, являются ли поля null или нет. Я не думаю, что это должно что-то делать с response. Окончательный журнал ответов в порядке. Но я считаю, что последняя flatmap делает список пустым.

3. Опубликуйте больше кода

Ответ №1:

Это происходит из-за «private var» внутри моих классов данных kotlin. удаление private сработало для меня.