Я пытаюсь отправить Flux с веб-клиента на сервер и всегда получаю пустое тело запроса.
Маршрутизатор:
@Bean
public RouterFunction<ServerResponse> procces(LetterHandler handler){
return RouterFunctions.route(POST("/letter").and(accept(APPLICATION_STREAM_JSON)).and(contentType(APPLICATION_STREAM_JSON)), handler::handle);
}
Метод обработки:
@Override
public Mono<ServerResponse> handle(ServerRequest serverRequest) {
serverRequest.body(toFlux(Letter.class)).doOnEach(letterSignal -> System.out.println(letterSignal)).switchIfEmpty(subscriber -> System.out.println("empty")).subscribe();
//serverRequest.bodyToFlux(Letter.class).doOnEach(letterSignal -> System.out.println(letterSignal)).subscribe();
}
Поле WebClient:
private final WebClient webClient = WebClient.builder()
.baseUrl("http://localhost:8081")
// .defaultHeader(MediaType.APPLICATION_JSON_VALUE)
.build();
WebClient - запрос:
public void send(Flux letters) {
webClient.post().uri("/letter")
.accept(MediaType.APPLICATION_STREAM_JSON)
.contentType(MediaType.APPLICATION_STREAM_JSON)
.body(letters, Letter.class)
//.body(BodyInserters.fromObject(letter))
// .retrieve().bodyToMono(void.class).subscribe();
.exchange().subscribe();
}
Почему я всегда получаю пустой запрос? Буду признателен за любую помощь.
Заранее спасибо!