异常信息:
异常1:
Caused by: com.alibaba.nacos.api.exception.NacosException: endpoint is blank
出现原因: 启动nacos消费者时报错, 网上找了一下
原因:因为pom里加入了spring-cloud-starter-alibaba-nacos-config的依赖,但又没有用到动态配置,所以会报空指针的错,如果只需要用到naocs的服务注册与发现功能,只需要加上spring-cloud-starter-alibaba-nacos-discovery这个依赖即可
然后我想了想, 我并没有在消费者模块引入config依赖, 那么它还报错, 那会不会是父依赖那出了问题.
然后我查看了一下父依赖
然后发现是引入了父依赖的config依赖, 然后我就把这两个依赖挪到了<dependencyManagement> 里面
它们两个的区别如下:
<dependencies> <!-- dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承) -->
<dependencyManagement> <!-- dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。 -->
然后启动成功
异常2:
跟异常1 是同一个异常, 是我在使用nacos集成gateway网关时出现的
原因:
因为在异常1时我已经把父类依赖搬走了, 所以不是这个原因引起的, 在我集成好gateway网关时也引入了spring-cloud-starter-alibaba-nacos-config 和 spring-cloud-starter-alibaba-nacos-discovery 依赖, 但是在配置文件中, 我只加了discovery 配置, 导致出现这个异常
解决方法:
1. 只是单纯的使用nacos作为服务的注册与发现, 不用来作为配置中心的话, 把config依赖删掉即可
2. 既要使用nacos作为服务的注册与发现, 也要作为配置中心的话, 那么discovery配置和config配置一个都不能少