愿你出走半生,|

枫叶艾辰

园龄:4年9个月粉丝:2关注:61

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured

一、问题背景

利用Nacos作为配置中心和注册中心,将数据库配置放在项目的yml文件时正常输出,放在Nacos配置中出现如下问题

二、报错截图如下

三、我的项目配置如下

#微服务配置
spring:
  application:
    name: content-api # 服务名content-api-dev.yaml
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      discovery: #服务注册相关配置
        namespace: d30c3e20-af6b-4bd5-9993-d4a9eacaedad
        group: xuecheng-plus-project
#        server-addr: 127.0.0.1:8848
      config: #配置文件相关配置
        namespace: d30c3e20-af6b-4bd5-9993-d4a9eacaedad
        group: xuecheng-plus-project
        file-extension: yaml
        refresh-enabled: true
  profiles:
    active: dev       # 环境名称
四、分析问题

(1) 利用nacos客户端获取配置

    @Test
    void contextLoads() {
        try {
            Properties properties = new Properties();
            properties.put("serverAddr", "127.0.0.1:8848");
            properties.put("namespace", "d30c3e20-af6b-4bd5-9993-d4a9eacaedad");
            ConfigService configService = NacosFactory.createConfigService(properties);
            String contentInfo = configService.getConfig("content-api-dev.yml", "xuecheng-plus-project", 1000L);
            System.out.println("contentInfo:" + contentInfo);
        } catch (NacosException e) {
            throw new RuntimeException(e);
        }
    }



说明Nacos配置正常,可以获取

五、问题原因

日志中dataId是content-api.yaml, 而Nacos中配置文件名称是content-api-dev.yml,仔细对比yml后发现file-extension属性写错了yaml

(2)出现加载的配置是父模块中application.properties中定义的应用名称,处理方式是在子模块处同样加个application.properties文件,即使是空的

六、解决方式

修改后的yml配置,将file-extension属性换成了yml

#微服务配置
spring:
  application:
    name: content-api # 服务名content-api-dev.yaml
  cloud:
    nacos:
      server-addr: 127.0.0.1:8848
      discovery: #服务注册相关配置
        namespace: d30c3e20-af6b-4bd5-9993-d4a9eacaedad
        group: xuecheng-plus-project
      config: #配置文件相关配置
        namespace: d30c3e20-af6b-4bd5-9993-d4a9eacaedad
        group: xuecheng-plus-project
        file-extension: yml
        refresh-enabled: true
  profiles:
    active: dev       # 环境名称
posted @   枫叶艾辰  阅读(933)  评论(0编辑  收藏  举报
历史上的今天:
2022-03-26 cnpm报错 : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
2022-03-26 node-sass安装出错问题
2021-03-26 Linux 目录结构
2021-03-26 将博客搬至CSDN
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起