【发布时间】:2021-04-21 09:40:41
【问题描述】:
我正在尝试使用 GraalVM 为 Spring Cloud Gateway 构建本机映像。我已经设法构建了一个可以启动的本机映像,但是在第一个 http 请求时我收到了这个错误:
java.lang.NoClassDefFoundError: Could not initialize class io.netty.resolver.dns.DnsServerAddressStreamProviders$DefaultProviderHolder
at com.oracle.svm.core.classinitialization.ClassInitializationInfo.initialize(ClassInitializationInfo.java:239) ~[na:na]
at io.netty.resolver.dns.DnsServerAddressStreamProviders.unixDefault(DnsServerAddressStreamProviders.java:107) ~[gatewayapplication.exe:4.1.60.Final]
at io.netty.resolver.dns.DnsServerAddressStreamProviders.platformDefault(DnsServerAddressStreamProviders.java:103) ~[gatewayapplication.exe:4.1.60.Final]
at io.netty.resolver.dns.DnsNameResolverBuilder.<init>(DnsNameResolverBuilder.java:60) ~[na:na]
at reactor.netty.transport.NameResolverProvider.newNameResolverGroup(NameResolverProvider.java:405) ~[na:na]
at reactor.netty.tcp.TcpResources.getOrCreateDefaultResolver(TcpResources.java:306) ~[na:na]
at reactor.netty.http.HttpResources.getOrCreateDefaultResolver(HttpResources.java:140) ~[na:na]
at reactor.netty.http.client.HttpClientConfig.defaultAddressResolverGroup(HttpClientConfig.java:380) ~[na:na]
at reactor.netty.transport.ClientTransportConfig.resolverInternal(ClientTransportConfig.java:219) ~[na:na]
at reactor.netty.http.client.HttpClientConfig.resolverInternal(HttpClientConfig.java:434) ~[na:na]
at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.lambda$subscribe$0(HttpClientConnect.java:264) ~[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:271) ~[na:na]
添加这个标志,没有帮助
--initialize-at-run-time=io.netty.resolver.dns.DnsServerAddressStreamProviders$DefaultProviderHolder
在反射配置中添加一个条目,两者都没有
{
"name":"io.netty.resolver.dns.DnsServerAddressStreamProviders$DefaultProviderHolder"
}
项目可以在这里找到:https://github.com/hanouard/demo-native-gateway
您知道导致此错误的原因吗?
【问题讨论】:
标签: spring-cloud-gateway graalvm-native-image spring-native