无法读取Flux / Mono的值

时间:2017-11-21 15:44:24

标签: spring-boot project-reactor spring-webflux reactor-netty

我有一个简单的程序,包含两个部分:一个Spring 5服务器,一个端点返回一个Mono< Double>,一个客户端程序读取值并打印它。

当我浏览http://localhost:8080/rand时,会返回一个double值。但是,当我使用客户端时,检索到的值始终为null(响应状态为200)。

我错过了什么?

File Main.java

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

File 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);
    }
}

1 个答案:

答案 0 :(得分:2)

这是Spring Framework 5.0.1的一个已知问题,有关详细信息,请参阅SPR-16166