问题发现
在跟着Nacos官网学习搭建微服务过程中碰到illegal dataId错误,配置文件如下:
spring:application:name: sc-nacos-productcloud:nacos:config:server-addr: 127.0.0.1:8848
然后启动报错,如图所示:
问题解决
根据错误意思,配置没有导入,使用spring.config.import=nacos:
或者spring.cloud.nacos.config.import-check.enabled=false
(但是看官网好像没有引入该配置),然后问了AI该配置如何引入对应配置,如图所示:
配置文件如下:
java">spring:application:name: sc-nacos-productconfig:import: nacos://127.0.0.1:8848cloud:nacos:config:server-addr: 127.0.0.1:8848
//
也不记得在哪看的案例,给他加上去(以为是Nacos地址),启动后报错 illegal dataId,如图所示:
根据这个错去百度,网上说根据官方解释,如图所示:
要把这几个都给配置上才会识别,配置文件如下:
spring:application:name: sc-nacos-productconfig:import: nacos://127.0.0.1:8848profiles:active: devcloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yaml
执行后依旧如此。
然后推到重来,定位到spring.config.import=nacos:
配置,看到别人案例好像是配置的spring.application.name
,也就说这里其实配置的是Nacos上的文件名,然后修改配置文件如下:
spring:application:name: sc-nacos-productconfig:import: nacos:${spring.application.name}profiles:active: devcloud:nacos:config:server-addr: 127.0.0.1:8848file-extension: yaml
发现启动成功,根据日志可以知道获取到一个空文件,如图所示:
好像并没有拼接对应的格式,但是Nacos上的配置文件是按照要求设置的,如图所示:
然后将对应的相关配置删除,直接设置相对应的文件名称,配置文件如下:
spring:application:name: sc-nacos-productconfig:import: nacos:sc-nacos-product-dev.ymlcloud:nacos:config:server-addr: 127.0.0.1:8848
加载成功,如图所示:
最后将nacos://127.0.0.1:8848
改成nacos:127.0.0.1:8848
发现也可以启动成功,在nacos的源码中回去切割内容,如图所示:
这也证实了配置内容格式错误,粗心大意了。