Похоже, проблема с десериализацией List<String>
(например, List<Integer>
и многие другие типы работают хорошо).Я попытался настроить конфигурацию ObjectMapper Джексона, но потерпел неудачу.Может быть, вы тоже должны попробовать это сами или даже поставить вопрос об этом в репозитории Jackson Github.
В качестве обходного пути вы можете вернуть Mono<List<String>>
из метода контроллера:
@GetMapping("/getflux")
public Mono<List<String>> getFlux() {
return Flux.fromIterable(
Arrays.asList(
"String 1",
"String 2"
)
).collectList();
}
,и назовите это так:
List<String> block = WebClient.builder()
.baseUrl("http://localhost:" + 8080 + "/")
.build()
.get()
.uri("/getflux")
.retrieve()
.bodyToMono(new ParameterizedTypeReference<List<String>>() {
})
.block();
Результат - ["String 1","String 2"]
.То же самое можно вернуть, вызвав метод контроллера непосредственно из веб-браузера / curl / и т. Д.