gpt4 book ai didi

tomcat - 带有外部配置文件的grails war tomcat

转载 作者:行者123 更新时间:2023-11-28 23:32:33 28 4
gpt4 key购买 nike

我想添加外部配置数据。所以我在主 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 但没有找到正确答案。

有没有人有想法?

最佳答案

以下是对我们有用的:

在 conf/Config.groovy 中:

grails.config.locations = [ 
"classpath:${appName}.properties",
"file:${userHome}/.grails/${appName}-config.properties"
]

它在 Windows 中工作,尽管 Groovy/Windows 认为是家 (~) 的地方可能有点令人惊讶。您尝试从 Config.groovy 访问环境变量看起来有点冒险......

关于tomcat - 带有外部配置文件的grails war tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28437929/

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