Asw*_*gan 6 java spring-boot project-reactor
将 Spring Boot 版本从 2.6.6 升级到 2.6.7 后,我在执行 Web 客户端休息调用时遇到以下错误。任何想法?
示例代码
public void execute(BiConsumer<ResponseEntity<JsonNode>, Throwable> responseConsumer) {
WebClient.RequestBodyUriSpec uriSpec = getUriSpec();
Mono<ResponseEntity<JsonNode>> responseEntityMono = uriSpec
.uri(this::buildUri)//"localhost:1234")//
.headers(this::setHeaders)
.body(insertBody())
.retrieve().onRawStatus(i -> i == 599,
response -> response.bodyToMono(String.class)
.map(body -> new ExternalException(599, body)))
.toEntity(JsonNode.class);
CompletableFuture<ResponseEntity<JsonNode>> completableFuture = responseEntityMono.toFuture();
completableFuture.whenCompleteAsync(responseConsumer);
}
Run Code Online (Sandbox Code Playgroud)
找不到的方法在MonoSink类中(在reactor-core项目中):https://github.com/reactor/reactor-core/blob/main/reactor-core/src/main/java/reactor /core/publisher/MonoSink.java
由于这是从 spring boot 版本 2.6.6 升级后遇到的异常,我猜想找不到它的类是 HttpClientConnect (在项目reactor-netty-http中)。不过,如果有整个堆栈异常就好了。
@jianjianbo 说得没错,你需要更新reactor-core 来解决这个问题,但不需要更新到3.4.3 版本。它至少应该是 3.4.17 版本(也就是说我会采用最新版本,在撰写本文时这是 3.4.19)。正如您在版本 3.4.16 中看到的 contextView() 尚未创建:https ://github.com/reactor/reactor-core/blob/v3.4.16/reactor-core/src/main/java/reactor/core /publisher/MonoSink.java
小智 5
升级pom.xml
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>3.5.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
小智 4
升级你的pom.xml
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
<version>3.4.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15356 次 |
| 最近记录: |