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

目录

 

问题描述

问题解决


问题描述

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


	com.alibaba.csp
	spring-boot-starter-ahas-sentinel-client
	1.2.1

后使用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是应用高可用服务中心)。

报错如图:

sentinel应用打包异常java.lang.NoClassDefFoundError: com/alibaba/csp/sentinel/spi/ServiceLoaderUtil_第1张图片

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

sentinel应用打包异常java.lang.NoClassDefFoundError: com/alibaba/csp/sentinel/spi/ServiceLoaderUtil_第2张图片

问题解决

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

sentinel应用打包异常java.lang.NoClassDefFoundError: com/alibaba/csp/sentinel/spi/ServiceLoaderUtil_第3张图片

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


	com.alibaba.csp
	spring-boot-starter-ahas-sentinel-client
	1.4.0

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

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

你可能感兴趣的:(微服务)