そのような構成を持ってehcache
います:
<ehcache>
<terracottaConfig url="192.168.1.4:9510"/>
<defaultCache
maxElementsInMemory="50"
eternal="false"
timeToIdleSeconds="20"
timeToLiveSeconds="20"
overflowToDisk="false"
diskPersistent="false"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="foo"
maxElementsInMemory="50000"
eternal="true">
<terracotta />
</cache>
</ehcache>
機能しません。アプリケーションはterracotta
サーバーに接続しませんが、起動時に次のような例外がスローされます。
net.sf.ehcache.ObjectExistsException: Cache foo already exists.
デバッグ ログを有効にすると、どこかに読み込まれていることがehcache
わかりません( jar ファイル内のクラスパスにある別のログが読み込まれます)。何が問題になる可能性がありますか?ehcache.xml
ehcache.xml
私のgrails
バージョンは2.1.1
、ehcache.xml
ディレクトリにありgrails-app/conf
ます。
UPDATE 1もう1
つの説明。という名前のキャッシュfoo
は、参照としてコード内およびコード内で使用されehcache.xml
ます (実際には Apache Camel ルートでは to('cache://foo') です。foo
コードで名前を変更するとbar
(たとえば、ルートは to('cache://bar' のようになります) ) という例外をスローしますCache bar already exists
。したがって、例外はehcache.xml
構成ファイルからではなく、そのキャッシュを名前で参照するコードから発生します。
UPDATE 2が参照される
キャメル ルート内に 2 つの場所があるため、例外がスローされたcache://foo
ようです。2 番目の参照に到達すると、その例外がスローされます。したがって、主な質問は、ehcache.xml
起動時にアプリケーションに表示されないのはなぜですか? ウォームアップしてcache://foo
、将来の使用に備える必要があります。
更新 3
以前は動作していたようgrails 1.3.7
です。そして今、それは動作しませんgrails 2.1.1