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

 更新时间:2025年02月14日 11:26:44   作者:zsd99zz  
文章介绍了如何使用Spring Boot 3.3.4和Spring Cloud 2023.0.3搭建微服务项目,并解决与Nacos服务注册发现和配置中心的集成问题,主要解决了依赖版本不兼容、配置文件导入问题及服务注册失败等问题,感兴趣的朋友跟随小编一起看看吧

场景

尝试从零搭建一个微服务项目,搭建基本框架后,本地启动程序连接远程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报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java8实现List中对象属性的去重方法

    java8实现List中对象属性的去重方法

    这篇文章主要介绍了java8实现List中对象属性的去重方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 详解Java8 CompletableFuture的并行处理用法

    详解Java8 CompletableFuture的并行处理用法

    Java8中有一个工具非常有用,那就是CompletableFuture,本章主要讲解CompletableFuture的并行处理用法,感兴趣的小伙伴可以了解一下
    2022-04-04
  • 一文搞懂String的intern()方法

    一文搞懂String的intern()方法

    这篇文章主要给大家介绍String的intern()方法,文中有详细的代码示例,感兴趣的小伙伴让我们一起来看看这究竟是个什么玩意
    2023-06-06
  • Java面向对象之内部类详解

    Java面向对象之内部类详解

    在 Java 中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类。这篇文章将总结一下内部类的使用,感兴趣的可以了解一下
    2022-10-10
  • java基础之String知识总结

    java基础之String知识总结

    今天带大家来回顾一下Java基础,文中详细总结了String的相关知识,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java运算符解密之位运算、移位运算举例详解

    Java运算符解密之位运算、移位运算举例详解

    这篇文章主要介绍了Java运算符解密之位运算、移位运算的相关资料,Java中的位运算符包括按位与&、按位或|、按位取反~和按位异或^,用于对数据的二进制位进行操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • java开发中基于JDBC连接数据库实例总结

    java开发中基于JDBC连接数据库实例总结

    这篇文章主要介绍了java开发中基于JDBC连接数据库的方法,以实例形式较为详细的总结分析了Java使用JDBC的具体步骤与注意事项,并附带了一个完整实例加以说明,需要的朋友可以参考下
    2015-11-11
  • Java将对象保存到文件中/从文件中读取对象的方法

    Java将对象保存到文件中/从文件中读取对象的方法

    下面小编就为大家带来一篇Java将对象保存到文件中/从文件中读取对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • spring缓存cache的使用详解

    spring缓存cache的使用详解

    这篇文章主要介绍了spring缓存cache的使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Struts中使用validate()输入校验方法详解

    Struts中使用validate()输入校验方法详解

    这篇文章主要介绍了Struts中使用validate()输入校验方法,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09

最新评论