问题标签 [spring-cloud-config-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8073 浏览

spring - 原因:java.lang.IllegalArgumentException:无法解析值“${some.other.property}”中的占位符“some.other.property”

我是 Spring 技术的新手,这个问题已经困扰了我好几个小时。我的 spring 云配置客户端无法从配置服务器读取属性,因为我收到IllegalArgumentException。配置服务器显示所有属性,但我认为propertySources 列表中的 name 属性存在问题,我的猜测是这就是我遇到此问题的原因。我在这里附上源代码、错误和输出。请帮帮我!!

错误:

当我点击 spring 云配置服务器的 ./{config-client-name}/{client-profile} 端点时,我得到以下输出。我认为有问题的部分以黄色突出显示。

Spring Cloud Config Server 输出图像

以下是我的配置服务器代码

pom.xml

应用程序属性

JAVA代码

以下是我的配置客户端代码

pom.xml

application.properties 文件

bootstrap.properties 文件

JAVA 代码 main.java

ConfigClientAppConfiguration.java

配置客户端控制器.java

对不起,如果我有任何愚蠢的错误,如果有,请指出。谢谢!

0 投票
0 回答
492 浏览

keycloak - Spring Cloud Config Server OAuth2 授权

我有一个配置服务器和运行配置服务器的 Spring Boot 微服务,需要基本身份验证用户/密码。我有一个 Keycloak 服务器,我想将其用于微服务对配置服务器的身份验证和授权。我已将 keycloak spring boot 适配器添加到配置服务器,因此现在配置服务器需要 OAuth2 令牌,并已通过 Postman 验证它可以按预期工作。

这是我的微服务 pom

这是我的 bootstrap.yml

对配置服务器的引导调用没有 OAuth2 持有者令牌。我错过了什么?

0 投票
1 回答
493 浏览

spring - 在 Spring Cloud Config 中选择特定配置文件时,不返回默认配置文件值

我正在从本地application.yml配置文件转移到配置服务器管理的配置。

我的 application.yml 文件在同一个文件中包含 2 个(或更多)配置文件,格式为:

当我在 NOT config-server 环境中测试此配置文件时,我会从特定配置文件中读取结果,如果未找到,则从默认配置文件中读取。样本

当我在没有 config-server 的情况下进行测试时结果正确

为了测试,我使用了一个简单的程序:

我用(我使用gradle)启动程序:

但是,当我迁移到配置服务器时,将文件移动到 config-repo(我正在使用基于文件的报告),我得到无效的结果(它无法读取默认部分中的变量)。我也试过 --spring.profiles.active=docker,default 没有改变

作为参考,我的配置服务器具有以下配置:

主要班

build.gradle

我从以下开始:

注意:由于我认为这是一个错误,我还在 github 中创建了一个问题。签入问题

0 投票
1 回答
2836 浏览

spring-boot - Spring boot 2.4.x 无法处理来自配置服务器的多文档 yml 文件

  1. Java版本:8
  2. Spring Boot 版本:2.4.1
  3. Spring Cloud 版本:2020.0.0,具体来说我使用了一个连接到 GIT 的 Spring Cloud Config Server,我们的服务是 Spring Cloud Config Clients。

我已经不再使用bootstrap.yml并开始使用spring.config.importspring.config.activate.on-profile如文档herehere中所述

我的服务中的配置(配置服务器的客户端)如下所示:

我在配置服务器中的配置如下所示:

application.yml(有两个文件由 --- 分隔)

my-rest-sercive.yml(有两个文件由 --- 分隔)

因为有一个配置文件“dev”处于活动状态,所以我成功地从配置服务器获取了以下 4 个配置:

  • application.yml:一般日志记录级别
  • application.yml: dev 的特定日志记录
  • my-rest-sercive.yml: 通用数据源属性
  • my-rest-sercive.yml: dev 的特定数据源 url

当我使用浏览器或调试时,或者当我降低日志级别进行跟踪时,我可以看到这 4 个源被成功获取:

但是,请注意,因为我使用多文档 yml 文件,所以在这 4 个属性源中,仅使用了两个唯一名称。

在稍后的步骤中,当 Spring 创建数据源 bean 时,他抱怨找不到数据源 URL。如果我调试 spring bean 工厂,我确实可以看到配置服务器返回的 4 个属性文件中,只剩下两个(不包含 dev profile 特定配置的那些)。我认为这是因为它们具有相同的名称并且它们相互覆盖。这是这段代码的效果MutablePropertySource.class

这是 Spring 2.3/Spring Cloud Hoxton 的重大变化,它正确收集了所有属性。我认为 Spring Cloud 需要更改配置服务器,以便 yml 中的每个文档在返回 Spring 时都有一个唯一的名称。这正是 Spring Boot 通过将字符串附加(documenyt #1)到属性源名称来处理多文档 yml 文件的方式

我发现了一个关于配置文件和多文档 yml 的有趣注释,基本上说它不受支持,但这不适用于我的用例,因为我的 yml 文件不是基于配置文件的( -{profileName}文件名的最后部分没有) .

0 投票
0 回答
247 浏览

spring-cloud - Spring Cloud Config Client 未报告运行状况

我已经实现了 Cloud Config Server,并且(最终)工作正常,并向客户端提供配置。我正在使用 3.0.1 版的 Config Server(我不得不升级,因为 3.0.0 中有一些错误)。

但我的最后一步,提供健康是行不通的。

在每个项目的执行器/健康中,它总是报告:

我在 bootstrap.yml 和 application.yml 中都添加了 enabled: true

注意:配置服务器在 3.0.1 中,但客户端在 3.0.0 中。由于依赖关系,我无法升级客户端。欢迎任何建议或线索!

0 投票
1 回答
110 浏览

spring-cloud-config - 当 spring 云配置项刷新时,有没有办法在客户端知道能够重新计算一些东西?

使用spring cloud config,当我更新配置并在任何客户端上调用刷新时,有没有办法通知我发生了这种情况?如果我基于 some 构造对象@ConfigurationProperties,我将希望使用这些分层属性的新状态来刷新这些对象。每次我需要引用配置道具时,我宁愿不执行查找;就我而言,最好在配置更改时刷新某些对象。那么,有没有办法进入刷新生命周期?

编辑:理想情况下,如果我能让一个@Configuration班级知道刷新事件,并重新绑定/重新实例化一些相关@Bean的 Spring ,那将是非常理想的!

0 投票
2 回答
2696 浏览

java - Spring Cloud Configuration Server 不使用本地属性文件 - 需要使用复合配置

我正在配置新的spring config server并收到以下错误。

我尝试了以下链接,但没有运气
Spring Cloud Config Server 配置与本地存储库
spring config server- 用于本地 git 存储库
https://medium.com/@danismaz.furkan/spring-cloud-config-with-file-system-后端-c18ae16b7ad5

引导程序属性

pom.xml

0 投票
2 回答
664 浏览

java - spring config客户端-启动客户端时无法解析值“$ {message}”错误中的占位符“消息”

我正在实施spring config server。我的配置服务器启动正常,我可以从http://localhost:8888/client-config/development位于C:\\configprop如下所示的 URL 获取数据。

但是当我在config client使用中获取数据时,http://localhost:8080/message我得到了Could not resolve placeholder 'message' in value "${message}"错误。

客户端应用程序

主班

控制器类

应用程序.yml

pom.xml

客户端配置 development.properties

0 投票
1 回答
212 浏览

spring - 如何从 Spring Cloud 客户端服务器使用 Spring Cloud 配置服务器 Jdbc 后端配置?

我浏览了很多关于此的教程,但无法完成。

这是我的表结构。

我有一个应该与 JDBC 后端集成的云配置服务器。这是我application.properties的配置服务器

使用此配置,如果我输入http://localhost:8082/masking/dev/latest响应将显示我想要的结果。

我想在客户端使用以下配置的属性bootstrap.properties

在我的客户端

这给java.lang.IllegalArgumentException: Could not resolve placeholder 'test-property' in value "${test-property}"

任何人都可以对此发表评论吗?

谢谢。

0 投票
1 回答
40 浏览

spring-boot - Spring Boot 配置客户端

使用 Spring Boot 开发微服务,目前正在致力于容器化我们的应用程序。但是,我似乎无法弄清楚 Cloud Config 客户端的最佳实践。

如何最好地更新 docker 容器的云配置服务器?

谢谢!