6

第2レベルのキャッシュにehcacheを使用してGrailsアプリケーションを実行すると、動作します。ehcacheプラグイン+プラグインをインストールしましたが、インストールされcacheません。私はインターネットからほとんどすべての解決策を試しましたが、私が得続ける解決策は見つかりませんでしAnother unnamed CacheManager already exists in the same VMた。

考えられる解決策の1つは、に設定p:shared=trueすることEhCacheManagerFactoryBeanです。これは、古いプラグイン「grailsのspringcacheプラグイン」を使用する場合に機能しますが、新しいプラグインでは、このマネージャーの変更バージョンを使用し、共有プロパティは使用できません。

新しいファイルを定義しようとしましehcache.xmlたが、それでもこのキャッシュマネージャーの新しい名前を入れることができません。

cache.provider自分の中のクラスを変更して、のようにDataSource.groovy相互に使用してみEhCacheProviderましたSingleton

言うまでもなく、DSLを使用して別の場所に別の名前を付けることをテストしましたが、それでもうまくいきませんでした。

最後に、廃止されたスプリングキャッシュ用の古いプラグインを使用しています。誰か助けてもらえますか?

Grails2.0.3とを使用してehcache-core:2.5.3います。

4

4 に答える 4

7

hibernateセクションで、最新であるDataSource.groovyことを確認してください。cache.provider.class

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = true
    cache.region.factory_class = 'grails.plugin.cache.ehcache.hibernate.BeanEhcacheRegionFactory' // For Hibernate before 4.0
    cache.region.factory_class = 'grails.plugin.cache.ehcache.hibernate.BeanEhcacheRegionFactory4' // For Hibernate before 4.0 and higher
}

cache.region.factory_classは時代遅れだったので同じ問題を抱えていました:net.sf.ehcache.hibernate.EhCacheProvider

http://grails-plugins.github.io/grails-cache-ehcache/guide/usage.htmlを参照してください

于 2014-07-16T18:20:58.273 に答える
5

Grails 2.5.xでこのエラーが発生した場合は、これを次のように追加してくださいConfig.groovy

beans {
   cacheManager {
      shared = true
  }
}

これで問題は解決しました。

ソース:https ://github.com/grails/grails-core/releases/tag/v2.5.0

于 2015-03-28T12:37:35.517 に答える
0

cachecache-ehcacheプラグインを使用してみてください。いくつかの制限がありますが、機能します。ただし、第2レベルのキャッシュの場合は正しく機能します

于 2013-04-09T07:40:26.633 に答える
0

ここに到着した人にとって、OPと同じエラーが発生すると、エラーは実行時のドメインクラスの更新(ホットコードスワップ)が原因である可能性があると見なされる可能性があります。これは、Grailsのすべてのバージョンでは適切に実行されません。

私はGrails2.5.4でこのバグを見つけましたが、解決する唯一のオプションとしてアプリケーションの再起動ボタンを使用しました。

于 2016-06-23T13:40:20.973 に答える