sentinel应用打包异常java.lang.NoClassDefFoundError: com/alibaba/csp/sentinel/spi/ServiceLoaderUtil

目录

 

问题描述

问题解决


问题描述

我在本地基于sentinel实现限流降级功能创建了两个应用,在加了这个依赖:

<dependency>
	<groupId>com.alibaba.csp</groupId>
	<artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
	<version>1.2.1</version>
</dependency>

后使用maven打jar包时报错,如下:

java.lang.NoClassDefFoundError: com/alibaba/csp/sentinel/spi/ServiceLoaderUtil

ERROR: AHAS init fail, ahas.license is needed
java.util.ServiceConfigurationError: com.alibaba.csp.sentinel.transport.HeartbeatSender: Provider com.alibaba.csp.sentinel.transport.heartbeat.SimpleHttpHeartbeatSender could not be instantiated

首先别被报错中的ahas.license is needed所迷惑(ahas是应用高可用服务中心)。

报错如图:

因为我想在EDAS上部署这个应用并实现限流与降级,前面打包有报错但是最后还是生成了jar包,结果试了下不出所料,访问没有成功,接口不正常:

问题解决

sentinel应用部署至阿里云EDAS时,需要给项目pom文件中加如下依赖(官方所述):

但是他们这个内容已经不合时宜了,是不对的。经过一番折腾,正确的依赖如下:

<dependency>
	<groupId>com.alibaba.csp</groupId>
	<artifactId>spring-boot-starter-ahas-sentinel-client</artifactId>
	<version>1.4.0</version>
</dependency>

这样你打包成功,部署到EDAS也是成功的!

记录下来,希望帮到更多的人!

发布了189 篇原创文章 · 获赞 144 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/HYZX_9987/article/details/105053266