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也是成功的!

記錄下來,希望幫到更多的人!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章