gpt4 book ai didi

java - 部署到 AppFog 时未检测到环境变量

转载 作者:行者123 更新时间:2023-12-01 15:02:27 24 4
gpt4 key购买 nike

似乎在将我的 Spring 应用程序部署到 AppFog 时,未检测到环境变量。

我在控制台中声明了环境变量:

Environment Variables

我尝试从我的应用程序代码中引用这些,如下所示:

<context:property-placeholder 
location="classpath:server.common.properties,
classpath:server.${concorde-env}.properties"/>

但是,这会产生错误:

Caused by: java.io.FileNotFoundException: class path resource [server.${concorde-env}.properties] cannot be opened because it does not exist

此方法在其他(非 AppFog)环境中运行良好。

我通过调用注销了属性:

 log.info("Properties: " + System.getProperties().toString());

并且它不会将这些属性显示为可用。

但是,如果我执行 af env <<MY_APP_NAME>> ,它显示了当前的变量:

+--------------------------+------------------+
| Variable | Value |
+--------------------------+------------------+
| concorde-env | test |
| spring.profiles.active | runtime,test |
+--------------------------+------------------+

为了让这些变量在运行时暴露给我的应用程序,我缺少什么?

最佳答案

尝试像这样访问该值:System.getenv("concorde-env") 以查看是否可以在代码中访问环境变量。

根据错误消息“类路径资源 [server.${concorde-env}.properties] 无法打开,因为它不存在” 看起来像 ${concorde- env} 甚至没有被评估或替换,即使是空字符串。

看起来 Spring 还有其他访问环境变量的方法。尝试使用 #{systemEnvironment['concorde-env']} 而不是 ${concorde-env}

关于java - 部署到 AppFog 时未检测到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13444688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com