小编Gau*_*arg的帖子

Spring-Boot WebClient block() 方法返回错误 java.lang.IllegalStateException

我正在尝试使用 Spring WebFlux WebClient获取值(字符串) (使用 SpringBoot 版本 2.4.5)

\n
@GetMapping("/test")\npublic Mono<String> getData(){\n    WebClient webClient = WebClient.create("http://localhost:9999");\n    Mono<String> stringMono = webClient.get()\n            .uri("/some/thing")\n            .retrieve()\n            .bodyToMono(String.class);\n    stringMono.subscribe( System.out::println);\n    System.out.println("Value : " + stringMono.block()); // this doesn\'t work,  expecting to return ResponseBody as "Hello World" ,\n    return stringMono;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但低于错误

\n
2021-05-11 20:02:15.521 ERROR 55613 --- [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [19114471-1]  500 Server Error for HTTP GET "/test"\njava.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread reactor-http-nio-2\n    at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:83) ~[reactor-core-3.4.3.jar:3.4.3]\n    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: \nError …
Run Code Online (Sandbox Code Playgroud)

spring-boot spring-webflux spring-webclient

4
推荐指数
1
解决办法
1万
查看次数