我正在考虑在我们的 Grails 应用程序中外部化 ehcache 的某些配置参数,但我遇到了文档声称应该解决的问题。
可能有一些我想念的东西。
我将 grails ehcache 插件版本 1.0.1 与 Grails 2.4.0 和 grails 缓存插件 1.1.7 一起使用。我正在使用休眠插件 3.6.10.16。
这是我的 CacheConfig.groovy 配置中的内容...
...
cacheManagerPeerProviderFactory {
peerDiscovery 'automatic'
factoryType 'rmi'
multicastGroupAddress '${ehcacheMulticastGroupAddress}'
multicastGroupPort '${ehcacheMulticastGroupPort}'
timeToLive 'site'
}
我已经打开了调试级别的日志记录,所以我可以看到它生成的 XML。这是相关的片段:
<cacheManagerPeerProviderFactory class='net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory'
properties="peerDiscovery=automatic,multicastGroupAddress=${ehcacheMulticastGroupAddress},multicastGroupPort=${ehcacheMulticastGroupPort},timeToLive=32"
propertySeparator=','
/>
grails ehcache 插件文档有以下注释,我希望“证明”...
(note that ${ehcacheMulticastGroupAddress} and ${ehcacheMulticastGroupPort} are an Ehcache feature that lets you use system property names as variables to be resolved at runtime)
伟大的。除了我启动应用程序时它不起作用。CacheManagerPeerProvider
由于以下原因无法创建
...
Caused by UnknownHostException: ${ehcacheMulticastGroupAddress}
->> 901 | lookupAllHostAddr in java.net.InetAddress$1
...
我有一个myApplication-config.groovy
位于可访问区域的文件,我在为 in 分配值时指向该grails.config.locations
区域Config.groovy
。但我不确定它是否正在努力真正插入该值。
我尝试了双引号,但它们也是一个坏主意——在解释CacheConfig.groovy
它时看不到我放入的配置myApplication-config.groovy
。我确实知道它在某个时候成功地读取了该文件,因为我成功地使用它来驱动一些 Quartz 作业逻辑,因此该配置文件的位置可能不是问题。