这两天在学习nacos和dubbo,在使用dubbo集成nacos和springboot的时候,一直报错,无法启动项目。
报错如下:
java.lang.IllegalStateException: No such any registry to export service in provider 10.10.8.165 use dubbo version 2.6.0, Please add <dubbo:registry address="..." /> to your spring config. If you want unregister, please set <dubbo:service registry="N/A" />
意思是我没有配置注册中心地址,但是配置文件明明是配了的。配置文件如下:
server:
port: 8001
spring:
application:
name: base-server
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
dubbo:
application:
name: base-server
protocol:
port: 20880
name: dubbo
registry:
address: nacos://10.10.8.165:8848
monitor:
protocol: registry
scan:
base-packages: com.nucarf.tianjione.service
排查了很久,一直以为是配置文件配置错误,最后发现,是dubbo版本太低。
现在dubbo已经是apache接管了,而我引入的还是alibaba的dubbo包。
报错时的依赖如下:
<dependency>
<groupId>org.alibaba.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
修改后如下:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.8</version>
</dependency>
这种问题是最难排查的。
换了依赖之后,并不是瞬间就搞定了,而是报了另一个错误,No such method...getLogger()什么的错误。
排查发现library中的jar包还是dubbo2.6.0。
于是进入本地repository文件夹,删掉2.6.0的jar包,又重启项目,终于成功。
网友评论