Webflux WebClient java.lang.NullPointerException

Webflux WebClient java.lang.NullPointerException,java,spring-webflux,project-reactor,reactor-netty,Java,Spring Webflux,Project Reactor,Reactor Netty,我无法将webflux webclient连接到我的端点 在我的控制器中,我试图暴露巧克力DTO的热流。 当我尝试用postman调用端点时,它是有效的 这句话的存在是因为Stackoverflow希望我添加更多的文本,因为我的问题中有太多的代码,很抱歉出现了冲突 @RestController public class HotChocolateController { @GetMapping(value = "/stream/chocolate", produces = MediaTy

我无法将webflux webclient连接到我的端点

在我的控制器中,我试图暴露巧克力DTO的热流。 当我尝试用postman调用端点时,它是有效的

这句话的存在是因为Stackoverflow希望我添加更多的文本,因为我的问题中有太多的代码,很抱歉出现了冲突

@RestController
public class HotChocolateController {

   @GetMapping(value = "/stream/chocolate", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)
   public Flux<Chocolate> chocolateStream() {
       return Flux.interval(Duration.ofMillis(500))
               .map(l -> Chocolate.builder()
                    .id(String.valueOf(System.currentTimeMillis()))
                       .name("Hot Chocolate")
                       .build())
               .log();
   }
}

您知道为什么会发生这种情况吗?

您只是订阅流并立即退出测试方法。 您可以将该方法更改为下面的代码,这样就可以看到get请求的结果:

    @Test
    public void testHotChocolate(){
        Flux<String> chocolateSource =
                client.get()
                        .uri("/stream/chocolate")
                        .retrieve()
                        .bodyToFlux(String.class)
                        .doOnNext(System.out::println);
        chocolateSource.blockLast();
    }
@测试
公共空间测试热巧克力(){
助焊剂巧克力源=
client.get()
.uri(“/stream/chocolate”)
.retrieve()
.bodyToFlux(String.class)
.doOnNext(System.out::println);
chocolateSource.blockLast();
}

您只需订阅流并立即退出测试方法。 您可以将该方法更改为下面的代码,这样就可以看到get请求的结果:

    @Test
    public void testHotChocolate(){
        Flux<String> chocolateSource =
                client.get()
                        .uri("/stream/chocolate")
                        .retrieve()
                        .bodyToFlux(String.class)
                        .doOnNext(System.out::println);
        chocolateSource.blockLast();
    }
@测试
公共空间测试热巧克力(){
助焊剂巧克力源=
client.get()
.uri(“/stream/chocolate”)
.retrieve()
.bodyToFlux(String.class)
.doOnNext(System.out::println);
chocolateSource.blockLast();
}
    @Test
    public void testHotChocolate(){
        Flux<String> chocolateSource =
                client.get()
                        .uri("/stream/chocolate")
                        .retrieve()
                        .bodyToFlux(String.class)
                        .doOnNext(System.out::println);
        chocolateSource.blockLast();
    }