我在从配置文件中访问值时遇到问题。在调试期间,似乎没有加载外部配置文件中的值。
我使用的Grails版本是2.3.8
,大约一个月前是2.1.0
,当时正在使用它。
我得到的错误是
无法施放对象' groovy.util.ConfigObject@149ad0fa'用class' groovy.util.ConfigObject'上课' java.lang.Long'。 Stacktrace如下: org.codehaus.groovy.runtime.typehandling.GroovyCastException:无法转换对象' groovy.util.ConfigObject@149ad0fa'用class' groovy.util.ConfigObject'上课' java.lang.Long'
MyClass.groovy
:
@Lazy public static Long GROUP_ID_TO_SEND = Holders.config.group.id.to.send
位于MyConfig.groovy
group.id.to.send = 3L as Long
Config.groovy
已涵盖该配置文件:
environments {
development {
grails.config.locations = [Ldap, Jndi, "file:${basedir}/MyConfig.groovy"]
...
答案 0 :(得分:0)
显然Grails 2.3打破了这个,它是known, still not fixed bug。
然而,我发现有一个简单的解决方案。你只需要改变这个
"file:${basedir}/MyConfig.groovy"
到这个
"file:MyConfig.groovy"