【发布时间】:2015-02-10 17:24:20
【问题描述】:
我想添加外部配置数据。所以我在主 Config.groovy 文件中添加了以下行。
我导出了环境变量
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties
-
extConfig.properties
simpleBSMDash.default.serverName = "test.it.com" simpleBSMDash.default.refreshInterval = "5" -
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。一切正常,实例 AdminSettings 已创建并使用预期值进行初始化。
当我在我的 tomcat 服务器上部署 war 文件时,实例 AdminSettings 没有被实例化。然而我确实导出了环境变量
DASH_CONFIG=<path_to_external_configfile>/extConfig.properties.
我将extConfig.properties 文件放在$TOMCAT_HOME/lib 文件夹中,但效果不佳。
我将它重命名为extConfig.groovy,它也没有帮助。
我搜索了stackflow,但没有找到正确的答案。
有人有想法吗?
【问题讨论】: