You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lb://访问Eureka时Spring Cloud Gateway发生NullPointerException

解决Spring Cloud Gateway中LoadBalancerClientFilter的NullPointerException问题

我来帮你搞定这个困扰你的空指针问题,这在Spring Cloud Finchley.M5里程碑版本里是个挺常见的配置遗漏问题,咱们一步步来修复:

1. 补充缺失的Ribbon依赖

Finchley.M5版本的Spring Cloud Gateway并不会自动引入负载均衡所需的Ribbon依赖,而LoadBalancerClientFilter正是依赖Ribbon来实现服务发现和负载均衡逻辑的。如果没加这个依赖,当处理lb://开头的路由时,就会因为找不到LoadBalancer实例而抛出NullPointerException。

如果是Maven项目,在pom.xml里添加以下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

如果是Gradle项目,在build.gradle里添加:

implementation 'org.springframework.cloud:spring-cloud-starter-netflix-ribbon'

2. 确认服务发现配置正确性

确保你的Gateway应用已经正确注册到本地的Eureka Server,并且能发现后端服务:

  • 在Gateway的主类上添加@EnableDiscoveryClient注解,开启服务发现功能
  • 在application.yml或application.properties中配置Eureka地址:
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/

3. 验证后端服务注册状态

检查你的后端服务(就是lb://后面指向的服务)是否已经成功注册到Eureka Server,并且服务名称和路由中使用的完全一致(Eureka服务名称是大小写敏感的)。

完成以上步骤后,重启Gateway应用,再访问lb://开头的路由,应该就能正常转发请求了。

内容的提问来源于stack exchange,提问作者Jay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:24:26