WebFlux всегда получает пустую публикацию тела от WebClient - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь отправить 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();
}

Почему я всегда получаю пустой запрос? Буду признателен за любую помощь. Заранее спасибо!

...