java.lang.IllegalArgumentException: Param ‘serviceName‘ is illegal, serviceName is blank 报错解决

目录

前言

系列文章目录

一、项目启动报错

1、报错截图

2、错误信息

二、解决方案

1.错误原因

2.排查建议


前言

本篇博客使用Spring Cloud 2021版本、Nacos 1.4.0、Spring Boot 2.7.6

系列文章目录

Spring Boot2.0系列教程合集、Spring Cloud系列教程合集、Spring Boot常见错误合集、Spring Cloud常见错误合集_zjh_746140129的博客-CSDN博客


以下是本篇文章正文内容,下面案例可供参考

一、项目启动报错

1、报错截图

2、错误信息

复制代码
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.2.jar:na]
	at com.alibaba.nacos.client.naming.NacosNamingService.subscribe(NacosNamingService.java:457) ~[nacos-client-1.4.2.jar:na]
	at com.alibaba.cloud.nacos.discovery.NacosWatch.start(NacosWatch.java:133) ~[spring-cloud-starter-alibaba-nacos-discovery-2021.0.1.0.jar:2021.0.1.0]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) [spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) [spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) [spring-context-5.3.22.jar:5.3.22]
	at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_161]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) [spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) [spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar:5.3.22]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.0.jar:2.6.0]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[spring-boot-2.6.0.jar:2.6.0]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:412) ~[spring-boot-2.6.0.jar:2.6.0]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) ~[spring-boot-2.6.0.jar:2.6.0]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) ~[spring-boot-2.6.0.jar:2.6.0]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290) ~[spring-boot-2.6.0.jar:2.6.0]
	at com.cloud.provider.ProviderApplication.main(ProviderApplication.java:26) ~[classes/:na]

二、解决方案

1.错误原因

Spring Boot 2.4.x的版本之后,对于bootstrap.properties和``bootstrap.yaml配置文件,需要在pom中加入依赖

XML 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.0</version>
        </dependency>

低版本的Spring Cloud有可能是spring.application.name没有设置。我看网上还有的人说是discovery.service没有设置,按理说这个不用设置,点进去会发现他默认就是取的${spring.application.name}

2.排查建议

如果低于Spring Boot 2.4版本的:

检查一下配置文件/Nacos配置中心是否设置spring.application.name

查看本地配置文件是否指定了Nacos作为配置中心地址

discovery.service这个不用设置,默认就是取${spring.application.name}

XML 复制代码
spring:
  application:
    name: provider


  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848    #Nacos作为服务注册中心
#        service: ${spring.application.name}
      config:
        server-addr: 127.0.0.1:8848 #Nacos作为配置中心地址
        file-extension: yaml #指定yaml格式的配置

相关推荐
程序员清风3 分钟前
独立开发者必看:推荐几个可直接用的开源项目!
java·后端·面试
YJlio6 分钟前
4月14日热点新闻解读:从金融数据到平台治理,一文看懂今天最值得关注的6个信号
java·前端·人工智能·金融·eclipse·电脑·eixv3
落魄江湖行13 分钟前
基础篇三 一行 new String(“hello“) 到底创建了几个对象?90% 的人答错了
java·面试·八股文
青衫码上行16 分钟前
【从零开始学习JVM】栈中存的是指针还是对象 + 堆分为哪几部分
java·jvm·学习·面试
默 语18 分钟前
Java的“后路“:不是退场,而是换了一种活法
java·开发语言·python
ywf121521 分钟前
Spring aop 五种通知类型
java·前端·spring
慕容卡卡22 分钟前
你所不知道的RAG那些事
java·开发语言·人工智能·spring boot·spring cloud
Lyyaoo.22 分钟前
【JAVA基础面经】List(Vector+ArrayList+LinkedList)
java·开发语言·list
ch.ju22 分钟前
Java程序设计(第3版)第二章——if if else else if
java
SimonKing23 分钟前
144K Star的开源神器,OpenCode进阶使用全攻略
java·后端·程序员