如何解决Spring Boot 反应式和 GraalVM java.lang.NoClassDefFoundError:无法初始化类 reactor.netty.http.client.HttpClientSecure
当我使用 Spring 响应式和 WebClient 创建本机图像时,一切都正确结束,但是当我使用 WebClient 发出请求时,出现以下错误:
2021-01-10 04:10:22.904 ERROR 1 --- [ctor-http-nio-2] reactor.netty.http.server.HttpServer : [id: 0x3dd90c0b,L:/172.17.0.2:8080 - R:/172.17.0.1:48222]
java.lang.NoClassDefFoundError: Could not initialize class reactor.netty.http.client.HttpClientSecure
at com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:215) ~[na:na]
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.lambda$subscribe$0(HttpClientConnect.java:211) ~[na:na]
at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[na:na]
at reactor.core.publisher.Fluxretrywhen.subscribe(Fluxretrywhen.java:76) ~[na:na]
at reactor.core.publisher.Monoretrywhen.subscribeOrReturn(Monoretrywhen.java:46) ~[na:na]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) ~[na:na]
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.subscribe(HttpClientConnect.java:263) ~[na:na]
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[na:na]
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[na:na]
at reactor.core.publisher.FluxFromMonoOperator.subscribe(FluxFromMonoOperator.java:83) ~[na:na]
这是我的代码
public Flux<User> getAllUser() {
return webClient
.get()
.uri("/v1/07defb0d")
.retrieve()
.bodyToFlux(User.class);
}
对我有什么建议吗?
解决方法
Reactive Streams Netty 驱动程序所需的 .jar
文件丢失。
在 pom.xml 中添加这个依赖:
<dependencies>
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
</dependency>
</dependencies>
这可能会解决问题,因为此依赖项会下载包含 HttpClientSecure
类的所需 jar(特别是在 reactor-netty-http-1.x.x.jar 中)。
截图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。