Skip to content

springcloud gateway 整合 nacos-client 后,native 编译后无法启动(jar 可正常启动) #14008

@WangJincheng4869

Description

@WangJincheng4869

我尝试将 springcloud gateway 裁剪为最小的情况,但依旧有错误(内部只保留一个全局的 filter,并删除多余依赖)

目前依赖

<dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
    </dependency>
    <!-- 注册中心 -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- 配置中心 -->
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    <!-- 需要使用注册中心和配置中心一定要引入 nacos client -->
    <dependency>
      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
    </dependency>
    <!-- 可通过服务名来执行网关调配必要依赖 -->
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-loadbalancer</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
    </dependency>
  </dependencies>

堆栈信息:

2025-12-06 15:16:06.442+08:00 ERROR 2377445 --- [basic-paper-gateway] [           main] c.a.n.c.remote.client.grpc.GrpcClient    : Server check fail, please check server 172.28.168.187, port 9848 is available, error ={}

java.util.concurrent.ExecutionException: com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: Connection closing while performing protocol negotiation for [NettyClientHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0]
        at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:596) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:471) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.serverCheck(GrpcClient.java:234) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.common.remote.client.grpc.GrpcClient.connectToServer(GrpcClient.java:346) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.common.remote.client.RpcClient.start(RpcClient.java:350) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.start(NamingGrpcClientProxy.java:133) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.client.naming.remote.gprc.NamingGrpcClientProxy.<init>(NamingGrpcClientProxy.java:123) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.client.naming.remote.NamingClientProxyDelegate.<init>(NamingClientProxyDelegate.java:83) ~[na:na]
        at com.alibaba.nacos.client.naming.NacosNamingService.init(NacosNamingService.java:130) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.client.naming.NacosNamingService.<init>(NacosNamingService.java:108) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.api.naming.NamingFactory.createNamingService(NamingFactory.java:59) ~[na:na]
        at com.alibaba.nacos.api.NacosFactory.createNamingService(NacosFactory.java:79) ~[na:na]
        at com.alibaba.cloud.nacos.NacosServiceManager.createNewNamingService(NacosServiceManager.java:99) ~[basic-paper-gateway:na]
        at com.alibaba.cloud.nacos.NacosServiceManager.buildNamingService(NacosServiceManager.java:90) ~[basic-paper-gateway:na]
        at com.alibaba.cloud.nacos.NacosServiceManager.getNamingService(NacosServiceManager.java:46) ~[basic-paper-gateway:na]
        at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.namingService(NacosServiceRegistry.java:190) ~[basic-paper-gateway:na]
        at com.alibaba.cloud.nacos.registry.NacosServiceRegistry.register(NacosServiceRegistry.java:67) ~[basic-paper-gateway:na]
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.register(AbstractAutoServiceRegistration.java:264) ~[basic-paper-gateway:4.3.0]
        at com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration.register(NacosAutoServiceRegistration.java:78) ~[basic-paper-gateway:na]
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.start(AbstractAutoServiceRegistration.java:156) ~[basic-paper-gateway:4.3.0]
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:119) ~[basic-paper-gateway:4.3.0]
        at org.springframework.cloud.client.serviceregistry.AbstractAutoServiceRegistration.onApplicationEvent(AbstractAutoServiceRegistration.java:49) ~[basic-paper-gateway:4.3.0]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[na:na]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[na:na]
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[na:na]
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:454) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:387) ~[basic-paper-gateway:6.2.12]
        at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:57) ~[na:na]
        at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:41) ~[na:na]
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:405) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:394) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:586) ~[basic-paper-gateway:6.2.12]
        at java.base@21.0.9/java.lang.Iterable.forEach(Iterable.java:75) ~[basic-paper-gateway:na]
        at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:364) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:310) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:1009) ~[basic-paper-gateway:6.2.12]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:630) ~[basic-paper-gateway:6.2.12]
        at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[basic-paper-gateway:3.5.7]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[basic-paper-gateway:3.5.7]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[basic-paper-gateway:3.5.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[basic-paper-gateway:3.5.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[basic-paper-gateway:3.5.7]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[basic-paper-gateway:3.5.7]
        at com.simperfect.bp.gateway.BasicPaperGatewayApplication.main(BasicPaperGatewayApplication.java:17) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.lang.invoke.LambdaForm$DMH/sa346b79c.invokeStaticInit(LambdaForm$DMH) ~[na:na]
Caused by: com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: Connection closing while performing protocol negotiation for [NettyClientHandler#0, WriteBufferingAndExceptionHandler#0, DefaultChannelPipeline$TailContext#0]
        at com.alibaba.nacos.shaded.io.grpc.Status.asRuntimeException(Status.java:532) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:638) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.census.CensusStatsModule$StatsClientInterceptor$1$1.onClose(CensusStatsModule.java:814) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.PartialForwardingClientCallListener.onClose(PartialForwardingClientCallListener.java:39) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.ForwardingClientCallListener.onClose(ForwardingClientCallListener.java:23) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.ForwardingClientCallListener$SimpleForwardingClientCallListener.onClose(ForwardingClientCallListener.java:40) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.census.CensusTracingModule$TracingClientInterceptor$1$1.onClose(CensusTracingModule.java:494) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:487) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:451) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:484) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:565) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.ClientCallImpl.access$100(ClientCallImpl.java:72) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:733) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:714) ~[na:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37) ~[basic-paper-gateway:na]
        at com.alibaba.nacos.shaded.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
        at java.base@21.0.9/java.lang.Thread.runWith(Thread.java:1596) ~[basic-paper-gateway:na]
        at java.base@21.0.9/java.lang.Thread.run(Thread.java:1583) ~[basic-paper-gateway:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:896) ~[basic-paper-gateway:na]
        at org.graalvm.nativeimage.builder/com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:872) ~[basic-paper-gateway:na]

Expected behavior
A clear and concise description of what you expected to happen.

Actually behavior
A clear and concise description of what you actually to happen.

How to Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See errors

Desktop (please complete the following information):

  • OS: [e.g. Ubuntu 24]
  • Version [e.g. nacos-server 2.4.3, nacos-client 3.1.1]
  • Module [e.g. naming/config]
  • SDK [e.g. jdk21, spring-cloud-alibaba-nacos, springcloud gateway(2025.0.0)]

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions