gpt4 book ai didi

grails - Grails应用程序未从配置中获取数据

转载 作者:行者123 更新时间:2023-12-02 13:53:31 24 4
gpt4 key购买 nike

我的Grails配置文件中有三个类似于以下的环境块:

environments {
production {
grails.serverURL = "https://www.mysite.com"
}
development {
grails.serverURL = "http://localhost:8080/${appName}"
}
test {
grails.serverURL = "http://localhost:8080/${appName}"
}
}

... // more code

environments {
production {
authnet.apiId = "123456"
authnet.testAccount = "false"
}
development {
authnet.apiId = "654321"
authnet.testAccount = "true"
}
test {
authnet.apiId = "654321"
authnet.testAccount = "true"
}
}

... // more code

environments {
production {
email.sales = 'sales@mysite.com'
}
development {
email.sales = 'test@mysite.com'
}
test {
email.sales = 'test@mysite.com'
}
}

Controller 中的某个位置:
println grailsApplication.config.grails.serverURL
println grailsApplication.config.authnet.apiId
println grailsApplication.config.email.sales

它输出:
http://localhost:8080/myapp
[:]
test@mysite.com

因此,由于某些原因,该应用程序无法从某些环境块中获取数据。环境块之外的东西很好。我注意到了几个不同的应用程序,不同的配置等问题。试图同时使用grailsApplication和ConfigurationHolder来解决此问题。是Grails的错误,还是我做错了什么?
我正在运行Grails 1.3.6

最佳答案

您多次重新定义配置信息。因为您执行的编写代码而不是XML配置的代码不会自动合并更改,所以多个配置块会相互覆盖。您需要在一个块中定义所有内容,例如

environments {
    development {
        grails.serverURL = "http://localhost:8080/${appName}"
        authnet.apiId = "654321"
        authnet.testAccount = "true"
    }
    test {
        grails.serverURL = "http://localhost:8080/${appName}"
        authnet.apiId = "654321"
        authnet.testAccount = "true"
    }
    production {
        grails.serverURL = "https://www.mysite.com"
        authnet.apiId = "123456"
        authnet.testAccount = "false"
    }

关于grails - Grails应用程序未从配置中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750315/

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