微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Boot 反应式和 GraalVM java.lang.NoClassDefFoundError:无法初始化类 reactor.netty.http.client.HttpClientSecure

如何解决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);
    }

This is my full example code

我有什么建议吗?

解决方法

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 中)。

截图:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。