如何解决无法从Kubernetese配置映射读取int值
我正在尝试在kubernetese上部署springboot应用程序。我已将所有环境变量存储在配置映射中,并尝试从那里读取值。有某些属性需要读取int值。
在我们的代码中,它看起来像这样:
application.properties:
TOKEN_RETRY_COUNT=3
由于我们必须从ConfigMap中读取它,因此我们更新了application.properties,如下所述:
更新application.properties:
TOKEN_RETRY_COUNT=${STARGATE_TOKEN_RETRY_LIMIT}
配置地图
配置的值类似于“配置映射”中的配置。我必须加双引号,因为没有双引号是不允许的。
"STARGATE_TOKEN_RETRY_LIMIT": "3",
现在,当我在kubernetese上部署它之后尝试读取这些值时,我遇到了以下错误:
对于STARGATE_TOKEN_RETRY_LIMIT:
Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: "STARGATE_TOKEN_RETRY_LIMIT"
现在,我已经更新了代码以将该值作为String,然后将其解析为int,但这不是理想的方式。应该有一些采用不同类型的标准方法。
如果我们无法在Config Maps中处理其他类型,那么什么是在kubernetese上为Springboot应用程序传递不同应用程序属性的理想方式呢?
解决方法
我认为问题不在于将属性值(3)指定为字符串(“ 3”)。如果您仔细阅读错误消息,将会发现NumberFormatException
是由于尝试将STARGATE_TOKEN_RETRY_LIMIT(从字面上)解析为int
引起的。将配置映射传递到应用程序/容器的方式可能有问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。