bootstrap.yml失效,导致nacos报错Param 'serviceName' is illegal, serviceName is blank

/ 后端 / 没有评论 / 1656浏览

最近打算重新搭建个自己的springcloud alibaba项目,发现升级生版本启动后,报错

java.lang.IllegalArgumentException: Param 'serviceName' is illegal, serviceName is blank
	at com.alibaba.nacos.api.naming.utils.NamingUtils.getGroupedName(NamingUtils.java:47) ~[nacos-api-1.4.1.jar:na]
	at com.alibaba.nacos.client.naming.NacosNamingService.subscribe(NacosNamingService.java:457) ~[nacos-client-1.4.1.jar:na]

根据报错可知,就是注册服务时候没有服务名,默认使用的是spring.application.name,我的确设置了;于是查阅网上相关问题及查看代码; spring cloud 2020以后的版本,默认不优先读取bootstrap.yml了; 相关链接:https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#config-first-bootstrap

解决方法: 添加bootstra启动器依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>