谷粒商城配置中心错误记录

一,com.alibaba.nacos.api.exception.NacosException: endpoint is blank

1,分析定位

启动项目时有如下错误日志打印。

在这里插入图片描述

2024-07-10 08:20:20.324 ERROR 10476 --- [           main] c.a.cloud.nacos.NacosConfigProperties    : create config service error!properties=NacosConfigProperties{serverAddr='null', encode='null', group='DEFAULT_GROUP', prefix='null', fileExtension='properties', timeout=3000, endpoint='null', namespace='null', accessKey='null', secretKey='null', contextPath='null', clusterName='null', name='null', sharedDataids='null', refreshableDataids='null', extConfig=null},e=,


Caused by: com.alibaba.nacos.api.exception.NacosException: endpoint is blank
	at com.alibaba.nacos.client.config.impl.ServerListManager.<init>(ServerListManager.java:154) ~[nacos-client-1.1.1.jar:na]
	at com.alibaba.nacos.client.config.http.ServerHttpAgent.<init>(ServerHttpAgent.java:244) ~[nacos-client-1.1.1.jar:na]
	at com.alibaba.nacos.client.config.NacosConfigService.<init>(NacosConfigService.java:83) ~[nacos-client-1.1.1.jar:na]
	... 39 common frames omitted

显然,启动没有读取到配置文件bootstrap.properties中配置的nacos服务地址。

仔细检查文件名和配置,确实没发生错误,百思不得其解。

在这里插入图片描述
推测是项目没有读取配置文件,重启了好几次还是没有任何作用。

终于,找到了原因。

把spring cloud升级到2020.0.x以后,默认不读bootstrap配置文件。

spring官方在change note中说明了,在新版中将spring.cloud.bootstrap.enabled默认设置为false不启用:

https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes#breaking-changes

在这里插入图片描述

Bootstrap, provided by spring-cloud-commons, is no longer enabled by default. If your project requires it, it can be re-enabled by properties or by a new starter.

解决方案有两个:

  • vm启动参数中增加-Dspring.cloud.bootstrap.enabled=true
  • 增加spring-cloud-starter-bootstrap依赖
		<dependency>
            <groupId>com.atguigu.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

2,关于配置文件application和bootstrap的区别与练习

bootstrap.ymlapplication.yml 在Spring Cloud应用中的主要区别可以从加载顺序、使用目的、配置内容、刷新策略和注意事项等方面进行分析:

加载顺序

  • bootstrap.yml:加载顺序在 application.yml 之前。它在Spring应用的上下文刷新之前被加载,主要用于配置那些影响Spring应用上下文初始化的属性。
  • application.yml:加载顺序在 bootstrap.yml 之后。它在Spring应用的上下文刷新之后被加载,主要用于配置应用运行时的属性。

使用说明

  • bootstrap.yml:如果使用到配置中心,其配置要放在bootstrap配置文件中。
  • application.yml:用于配置应用级别的属性,如数据库连接信息、服务器端口、日志配置等。

参考文献

https://www.jb51.net/article/214410.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值