当前位置: 代码网 > it编程>编程语言>Java > SpringBoot3整合SpringCloud启动后nacos报错获取不到配置、无法注册服务的解决方案

SpringBoot3整合SpringCloud启动后nacos报错获取不到配置、无法注册服务的解决方案

2025年02月15日 Java 我要评论
场景尝试从零搭建一个微服务项目,搭建基本框架后,本地启动程序连接远程nacos报错一、依赖版本信息?springboot 3.3.4springcloud 2023.0.3springcloudali

场景

尝试从零搭建一个微服务项目,搭建基本框架后,本地启动程序连接远程nacos报错

一、依赖版本信息?

  • springboot 3.3.4
  • springcloud 2023.0.3
  • springcloudalibaba 2023.0.3.2
  • 阿里云部署nacos版本2.3.2

如果需要使用到nacos的服务注册发现及配置中心的功能,那么要先保障引入nacos服务注册和nacos配置中心的依赖

        <!-- nacos 服务注册中心 -->
        <dependency>
            <groupid>com.alibaba.cloud</groupid>
            <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid>
        </dependency>
        <!-- nacos 配置中心 -->
        <dependency>
            <groupid>com.alibaba.cloud</groupid>
            <artifactid>spring-cloud-starter-alibaba-nacos-config</artifactid>
        </dependency>

想直接看配置的也可以参考下面最终配置文件

server:
  port: 9001
spring:
  application:
    name: auth-custom
  profiles:
    active: @profiles.active@
  cloud:
    nacos:
      username: nacos
      password: nacos
      discovery:
        server-addr: nacos的ip+端口
        # 具体分组名看nacos客户端你是怎么配置的,一定要和nacos客户端一致
        group: default_group
        # 看服务是分属哪个命名空间的,一定要和nacos客户端中命名空间的id一致
        namespace: 705b282b-1699-488f-8b84-b8b920c29432
      config:
        server-addr: nacos的ip+端口
        # 具体分组名看nacos客户端你是怎么配置的,一定要和nacos客户端一致
        group: default_group
        # 看服务是分属哪个命名空间的,一定要和nacos客户端中命名空间的id一致
        namespace: 705b282b-1699-488f-8b84-b8b920c29432
        file-extension: yaml
        # 如果nacos客户端有启动鉴权,将nacos配置文件中的secret-key的值粘贴过来
        secret-key: nacos配置文件中secret-key的值
  config:
    import:
      - nacos:application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
      - nacos:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

二、 报错信息

1.no spring.config.import property has been defined

解决方法:
因为启动文件是bootstrap.yml,springcloud 2020.0.2版本中把bootstrap的相关依赖从spring-cloud-starter-config中移除了,需要单独引入spring-cloud-starter-bootstrap的依赖。

        <!--    bootstrap依赖    -->
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-bootstrap</artifactid>
        </dependency>

2.本地可以登录远程nacos控制台,但是服务注册不上去,服务管理中的服务列表中是空的。但是如果连接本地nacos,服务能正常注册上去,服务列表中能查看到相应的微服务

解决方案
1、确保引入注册中心依赖

2、确保nacos客户端的ip和端口是正确的,并且group和namespace的值要与nacos客户端一致

3、云服务器安全组需要开放8848、9848、9849 这个端口出来

3、 配置文件不存在 或 读取不到配置文件中的属性

解决方案
springboot3兼容的spirngcloud版本需要使用spring.config.import导入配置

如果出现以下报错,提示配置文件不存在,在确保配置文件名称是正确的情况下,并且nacos客户端是开启鉴权的,那么在配置文件中加上secret-key属性值

config data resource 'nacosconfigdataresource{properties=nacosconfigproperties{serveraddr='8.138.136.74:8848', encode='null', group='default_group', prefix='null', fileextension='yaml', timeout=3000, maxretry='null', configlongpolltimeout='null', configretrytime='null', enableremotesyncconfig=false, endpoint='null', namespace='705b282b-1699-488f-8b84-b8b920c29432', accesskey='null', secretkey='null', ramrolename='null', contextpath='null', clustername='null', name='null'', shares=null, extensions=null, refreshenabled=true}, optional=false, profiles=[profiles@4287d447 active = '[dev]', default = '[default]', accepted = '[dev]'], config=nacositemconfig{group='default_group', dataid='auth-custom-dev.yaml', suffix='yaml', refreshenabled=true, preference=null}}' via location 'nacos:auth-custom-dev.yaml' does not exist
action:
check that the value 'nacos:auth-custom-dev.yaml' at class path resource [bootstrap.yml] - 24:9 is correct, or prefix it with 'optional:'

总结

正常按照提供的yaml文件,是能正常连接上nacos,并且服务注册发现和配置拉取都是正常,如果有遇到其他问题,也欢迎留言。

到此这篇关于解决springboot3整合springcloud启动后nacos报错获取不到配置、无法注册服务的文章就介绍到这了,更多相关springboot3整合springcloud启动nacos报错内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com