带有外部配置文件的grails war tomcat
我想添加外部配置数据。因此,我在主Config.groovy文件中添加了以下行 我导出了环境变量带有外部配置文件的grails war tomcat,tomcat,grails,tomcat7,war,Tomcat,Grails,Tomcat7,War,我想添加外部配置数据。因此,我在主Config.groovy文件中添加了以下行 我导出了环境变量 DASH_CONFIG=<path_to_external_configfile>/extConfig.properties DASH_CONFIG=<path_to_external_configfile>/extConfig.properties. Config.groovy if(System.getenv('DASH_CONFIG')) { println
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
Config.groovy
if(System.getenv('DASH_CONFIG')) {
println( "Including configuration file: " + System.getenv('DASH_CONFIG'));
grails.config.locations = [
"classpath:exthConfig.properties",
"file:./extConfig.properties",
"file:${System.getenv('DASH_CONFIG')}"]
} else {
println "No external configuration file defined."
}
Bootstrap.groovy
我正在初始化Boostrap.groovy中的一些配置参数。比如说
import org.codehaus.groovy.grails.commons.ConfigurationHolder
new AdminSettings(
refreshInterval:"${ConfigurationHolder.config.simpleBSMDash.default.refreshInterval}", serverName:"${ConfigurationHolder.config.simpleBSMDash.default.serverName}").save(failOnError:true)
当通过grails-Denv=DEV-run-app在本地运行应用程序时。一切正常,intance AdminSettings已创建并使用预期值初始化
当我在我的tomcat服务器上部署war文件时,不会显示intance AdminSettings。但我确实导出了环境变量
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
我将extConfig.properties文件放在$TOMCAT_HOME/lib文件夹中,它也不起作用
我将其重命名为extConfig.groovy,它也没有帮助
我在stackflow中搜索,但没有找到正确答案
有人有想法吗?以下是对我们有效的方法: 在conf/Config.groovy中:
grails.config.locations = [
"classpath:${appName}.properties",
"file:${userHome}/.grails/${appName}-config.properties"
]
它在Windows中工作,尽管Groovy/Windows认为是home~的地方可能有点令人惊讶。您尝试从Config.groovy访问环境变量看起来有点冒险…或者尝试以下操作:感谢@CharlesW的回复,但我已经测试了您的选项,但它不起作用。。。