在云中心设置中工作的属性在属性文件中不起作用



我的应用在名为 keys 的子目录中的 src/main/resources 目录中使用公共加密密钥。为了在本地访问它,我只需要将路径设置为src/main/resources/keys/<mykey>.gpg

由于Cloudhub上的结构不同,因此设置上述路径将不起作用,我必须将其设置为${app.home}/keys/<mykey>.gpg。 当我直接在 Cloudhub 中设置属性时,这有效,但是当我在我的属性文件中设置它时,我收到错误消息...

Could not resolve placeholder 'app.home' in string value 
"${app.home}/classes/keys/<mykey>.gpg"

在本地运行时,我也无法解析该属性。我的猜测是,首先解析 application-${ENV}.properties 中的属性,然后设置 ${app.home} 属性,最后解析 Cloudhub 属性。

我的问题是,我该怎么做才能确保从属性文件中正确解析 ${app.home},或者有没有另一种方法可以在不使用它的情况下实现相同的目标?理想情况下,我们不希望每次在 Cloudhub 中重新部署应用程序时都必须设置公钥位置。

谢谢!

编辑: 为了更清楚起见,以下是我在应用程序 DEV 属性中设置属性的地方:cibc.public.key.location=${app.home}/classes/keys/<mykey>.gpg

我认为在某些情况下这是 Mule 3 中的一个问题。您可以尝试在属性占位符上设置ignore-unresolvable="true"吗?它应该告诉春天移动到下一个地方查找。

<context:property-placeholder location="your.properties" ignore-unresolvable="true"/>

更新 此外,请尝试将属性拆分为两个条目:

cibc.public.key.location=classes/keys/<mykey>.gpg

然后在您的骡子配置中:

identityFile="${app.home}/${cibc.public.key.location}" 

最新更新