升级spring-cloud-config-server后,LEAF和MAP之间发生冲突

时间:2018-11-11 14:40:47

标签: spring cloud spring-cloud-config

我正在使用spring-cloud-config-server 1.2.2..RELEASE。

我需要将其更新为较新版本(例如1.4.4..RELEASE,但该问题也发生在最新版本中)。当我尝试更新版本并调用配置服务器的YAML端点(请求测试配置文件)时,我的一些属性出现错误(ClassCastException: java.lang.String cannot be cast to java.util.Map

这些属性在application.yaml中定义为LEAF:

logging.level.com.company: DEBUG

但是在我的应用程序特定配置文件YAML(application-test.yaml)上被定义为MAP:

logging.level.com.company.salesforce.editor.service: DEBUG

以前,我在响应YAML中输入了以下内容:

logging:
    level:
        com:
            company: DEBUG
            company.salesforce.editor.service: DEBUG
  • 我调试了spring-cloud-config-server代码,发现发现EnvironmentController.java\convertToMap(Environment input, boolean resolvePlaceholders)()中有一个重大更改(从1.2.x更改为1.3.x)可能导致了此错误。

  • 我在类似的问题上发现了这个GitHub问题: ClassCastException with specific logging settings 但这对我没有帮助。

如何使用新版本,但得到的响应与旧版本相同?如果不可能的话,我可以采取的另一种行动方针是什么?

编辑

我已经创建了一个演示项目来说明问题-从此处克隆它:

spring-cloud-config-server-demo

(它使用以下git后端进行配置:spring-cloud-config-server-configurations

演示服务器一旦启动并运行,就可以像这样查询它:

curl http://localhost:8080/master/application-test.yaml

,您将收到此错误:

java.lang.String cannot be cast to java.util.Map

0 个答案:

没有答案