在 Spring 云项目中从 Github 读取远程配置时解析异常

Parsing Exception on reading remote config from Github in a Spring cloud project

提问人:nullpointer 提问时间:10/12/2023 更新时间:10/19/2023 访问量:18

问:

我们有 2 个微服务:

config-servicemy-actual-service

我们有一个单独的 Git 项目,其中包含所有 springboot/springcloud 配置。

my-actual-service 联系 config-service,config-service 从 Github 获取相应的配置。

配置加载正常,但随后在数据源部分抛出解析错误:

    org.springframework.cloud.config.server.environment.FailedToConstructEnvironmentException: 
Could not construct context for config=myconfig profile=dev label= includeOrigin=true; nested exception is while parsing a block mapping
     in 'reader', line 3, column 5:
            url: jdbc:oracle:thin:@myserver ...
            ^
    expected <block end>, but found '<scalar>'
     in 'reader', line 5, column 23:
            password: {cipher}encrypted_password ...
                              ^
    
            at org.springframework.cloud.config.server.environment.NativeEnvironmentRepository.findOne(NativeEnvironmentRepository.java:165) ~[spring-cloud-config-server-4.0.1.jar:4.0.1]
            at org.springframework.cloud.config.server.environment.AbstractScmEnvironmentRepository.findOne(AbstractScmEnvironmentRepository.java:64) ~[spring-cloud-config-server-4.0.1.jar:4.0.1]
            at org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.findOneFromCandidate(MultipleJGitEnvironmentRepository.java:195) ~[spring-cloud-config-server-4.0.1.jar:4.0.1]
            at org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.findOne(MultipleJGitEnvironmentRepository.java:178) ~[spring-cloud-config-server-4.0.1.jar:4.0.1]
            at org.springframework.cloud.config.server.environment.ObservationEnvironmentRepositoryWrapper.lambda$findOne$3(ObservationEnvironmentRepositoryWrapper.java:75) ~[spring-cloud-config-server-4.0.1.jar:4.0.1]

这是配置:

spring:
  datasource:
    url: "jdbc:oracle:thin:@myserver:port:sid"
    username: USER
    password: {cipher}encrypted_password

无法弄清楚这里可能发生了什么。我尝试了带引号、双引号和没有任何引号且没有变化的 url

我们使用的是Spring boot/cloud版本:3.0.2。

java spring-boot yaml spring-cloud snakeyaml

评论


答:

0赞 nullpointer 10/19/2023 #1

这是一件简单的事情,整个密码字符串,因为它有大括号,需要用单引号括起来,所以像:.'{cipher}encrypted_password'

让我失望的是,它开始在网上抱怨。该行不需要有单引号或双引号。urlurl