Spring WebClient устанавливает для некоторых полей значение NULL, когда они не являются NULL в теле ответа - PullRequest
0 голосов
/ 25 октября 2018

У меня есть класс домена

import org.springframework.data.mongodb.core.mapping.Document;

import lombok.Data;

@Data
@Document
public class Bar {

    @Id
    private String id;


    private List<String> owners;
    private List<String> cFeatures; 

    private Integer age;
    private String color;

}

Я использую приведенный ниже код для вызова API для получения данных в объекте Bar:

import org.springframework.web.reactive.function.client.WebClient;
    Mono<Bar> prop = webClient.get()
                    .uri("/bars/"+id)
                    .header("Authorization", "Bearer " + access_token)
                    .accept(MediaType.APPLICATION_JSON)
                    .retrieve()
                    .bodyToMono(Bar.class).log("find by id")

Проблема в том, что я получаю cFeatures как ноль дажехотя оригинальный ответ JSON имеет: "cFeatures": ["custom feature one", ""]

, но список владельцев получает правильное значение, даже если владельцы также имеют пустое строковое значение в списке (не уверен, что это источникэтой ошибки)

, поэтому объект Bar имеет: cFeatures: null

Это ошибка в Webclient или я что-то упустил?Я потратил на это целый день, но пока ничего не исправил.

1 Ответ

0 голосов
/ 25 октября 2018

Проблема была с ломбоком.Ломбок генерировал метод установки:

setCFeatures

, но Джексон ожидает установки:

setcFeatures, которую он не находит, и, следовательно, нулевое значение для cFeatures.

...