解决SpringCloud整合Nacos启动报java.lang.IllegalArgumentException: illegal dataId

问题发现

在跟着Nacos官网学习搭建微服务过程中碰到illegal dataId错误,配置文件如下:

spring:
  application:
    name: sc-nacos-product
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848

然后启动报错,如图所示:

在这里插入图片描述

问题解决

根据错误意思,配置没有导入,使用spring.config.import=nacos:或者spring.cloud.nacos.config.import-check.enabled=false(但是看官网好像没有引入该配置),然后问了AI该配置如何引入对应配置,如图所示:

在这里插入图片描述
配置文件如下:

spring:
  application:
    name: sc-nacos-product
  config:
    import: nacos://127.0.0.1:8848
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848

//也不记得在哪看的案例,给他加上去(以为是Nacos地址),启动后报错 illegal dataId,如图所示:

在这里插入图片描述
根据这个错去百度,网上说根据官方解释,如图所示:

在这里插入图片描述
要把这几个都给配置上才会识别,配置文件如下:

spring:
  application:
    name: sc-nacos-product
  config:
    import: nacos://127.0.0.1:8848
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml

执行后依旧如此。

然后推到重来,定位到spring.config.import=nacos:配置,看到别人案例好像是配置的spring.application.name,也就说这里其实配置的是Nacos上的文件名,然后修改配置文件如下:

spring:
  application:
    name: sc-nacos-product
  config:
    import: nacos:${spring.application.name}
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml

发现启动成功,根据日志可以知道获取到一个空文件,如图所示:
在这里插入图片描述
好像并没有拼接对应的格式,但是Nacos上的配置文件是按照要求设置的,如图所示:

在这里插入图片描述
然后将对应的相关配置删除,直接设置相对应的文件名称,配置文件如下:

spring:
  application:
    name: sc-nacos-product
  config:
    import: nacos:sc-nacos-product-dev.yml
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848

加载成功,如图所示:

在这里插入图片描述

最后将nacos://127.0.0.1:8848改成nacos:127.0.0.1:8848发现也可以启动成功,在nacos的源码中回去切割内容,如图所示:

在这里插入图片描述
这也证实了配置内容格式错误,粗心大意了。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐