我有一个带有JSF 2.2和Spring 4.2的java web应用程序。 我的目标是在glassfish 4.1.1上部署我的web应用程序,操作系统是ubuntu服务器16.04。
我尝试使用以下命令部署我的网络应用程序
asadmin deploy myWebApp.war
但是在我填写userName和密码后,我发现了一个错误,告诉我我的应用程序没有看到环境变量。
生成错误的配置如下
@Autowired
private Environment env;
@Bean
public PropertiesFactoryBean myExternalProperties() {
PropertiesFactoryBean res = new PropertiesFactoryBean();
res.setFileEncoding("UTF-8");
res.setLocation(new FileSystemResource(env.resolvePlaceholders("${MY_ENV_VAR}") + "external.properties"));
return res;
}
但是如果从命令行我启动以下命令
printenv MY_ENV_VAR
变量已正确填充。
我尝试过两种不同的方式
将环境变量放在/home/myUser/.bashrc中,添加行导出MY_ENV_VAR = myPath
将环境变量放在/etc/profile.d/myShFile.sh中添加行导出MY_ENV_VAR = myPath
但没有运气。你能帮助我吗? 在Windows上,应用程序正在运行,我想在设置环境变量时我做错了。
谢谢
答案 0 :(得分:0)
这可能是错的,但值得一试。 我的理解是,一旦linux进程启动它就无法读取新定义或更新的环境变量。 因此,重新启动服务器应解决您的问题。
答案 1 :(得分:0)
我已经解决了以下字符串
的问题ID|From Date |To Date
1 |01/01/2014 |12/31/2016
/ etc / environment文件中的