Невозможно прочитать значения из Flux/Mono

У меня есть простая программа, состоящая из двух частей: сервер Spring 5 с одной конечной точкой, которая возвращает Mono‹Double›, и клиентская программа, которая считывает значение и печатает его.

Когда я перехожу к http://localhost:8080/rand, возвращается двойное значение. Однако, когда я использую клиент, полученное значение всегда равно нулю (статус ответа — 200).

Что мне не хватает?

Файл Main.java

@SpringBootApplication
@EnableWebFlux
public class Main {
    public static void main(String... args) {
        SpringApplication.run(Main.class);
    }
}

Файл MyController.java

@RestController
public class MyController {
    @GetMapping("/rand")
    public Mono<Double> GetDouble() {
        return Mono.just(ThreadLocalRandom.current().nextDouble());
    }
}

Файл MyClient.java

public class MyClient {
    public static void main(String... args) {
        WebClient client = WebClient.create("http://localhost:8080");

        Double value = client.get()
                .uri("/rand")
                .accept(MediaType.APPLICATION_JSON)
                .retrieve()
                .bodyToMono(Double.class)
                .block();
        System.out.println("value = " + value);
    }
}

person msayag    schedule 21.11.2017    source источник
comment
создал еще один вопрос с некоторыми выводами относительно того же. stackoverflow.com/ вопросы/47420900/   -  person pvpkiran    schedule 21.11.2017
comment
оба вопроса касаются одной и той же проблемы, по существу дублируя друг друга...   -  person Brian Clozel    schedule 21.11.2017


Ответы (1)


Это известная проблема с Spring Framework 5.0.1, см. SPR-16166 для получения дополнительной информации. Информация.

person Brian Clozel    schedule 22.11.2017