报错信息:
(1)java.lang.RuntimeException: ErrCode:-400, ErrMsg:Could not initialize class com.alibaba.nacos.common.remote.client.grpc.GrpcSdkClien。
(2)java.lang.reflect.InvocationTargetException。
(3)Failed to start bean 'nacosWatch'; nested exception is java.lang.RuntimeException:ErrCode:-400,ErrMsg:'com.google.common.collect.UnmodifiableIterator com.google.common.collect.Sets$SetView
原因:基本是因为引用的spring cloud 版本,alibaba cloud版本,nacos的版本不一致导致的
spring cloud、alibaba cloud相关版本对应可在github 上alibaba里的spring-cloud-alibab看:
版本说明 · alibaba/spring-cloud-alibaba Wiki (github.com)
我用的版本:spring-cloud-alibaba:21.0.4.0,spring boot:2.6.6 ,
nacos客户端我的是2.2.3(nacos可以向下兼容)
按理来说版本都是对应的、应该可以运行的,但它报了最开始说的错误,查看一下maven实际导入的依赖:
可以看到:nacos-discovery里面的nacos-client被忽视了,没有被使用(原因似乎是因为nacos-client 2.0.4版本和我们用的nacos-server 1.x版本不兼容。这个先不管)
解决办法:
导入依赖:(这里版本不一定要是2.2.3,也可以是2.2.1等等,只要和cloud2021.0.4兼容就行)
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>2.2.3</version>
</dependency>
最后查看依赖:
正常启动运行!