2017-08-02 6 views
1

私はそれがローカルで働いていたので、私は、サーバーにデプロイし、明らかにそれを競っていますCacheMangerを持つ別のアプリケーションがスペース ありますされてCacheManagernet.sf.ehcache.CacheMangerをorg.springframework.cache.CacheManagerに変換しますか?

@Bean(name="cacheManager") 
@Primary 
public CacheManager getCacheManager() { 
    return new EhCacheCacheManager(); 
} 

と呼ばれる春ブーツ用Application.javaに豆を使用してローカルに実行するアプリケーションを持っていますnet.sf.ehcache.CacheException:によって引き起こさ

:別の無名のCacheManager はすでに同じVM内に存在し、私は、次のスタックトレースを取得するため。 1. CacheManager.create()静的ファクトリメソッドの1つを使用して、同じ名前で同じCacheManagerを再利用するか、必要に応じて作成します。 2.以前のシャットダウン同じ名前の新しいものを作成する前にcacheManager既存のCacheManagerのソースは次のとおりです。 DefaultConfigurationSource [ehcache.xmlまたはehcache-failsafe.xml] net.sf.ehcache.CacheManager.assertNoCacheManagerExistsWithSameName(CacheManager.java:626) at net.sf.ehcache.CacheManager.init net.sf.ehcache.CacheManagerで(CacheManager.java:391)。(CacheManager.java:269) org.springframework.cache.ehcache.EhCacheManagerUtils.buildCacheManager(EhCacheManagerUtils.java:54)で org.springframeworkで.cache.ehcache.EhCacheCacheManager.afterPropertiesSet(EhCacheCacheManager.java:74)0で org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) でorg.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean

を省略32の共通フレーム(AbstractAutowireCapableBeanFactory.java:1624) ...私は

@Bean(name="cacheManager") 
@Primary 
public CacheManager getCacheManager() { 
    return net.sf.ehcache.CacheManager.create(); 
} 

が、その後net.sf.ehcache.CacheManger.create() doesnのを置くことを試みました春のCacheMangerを返します。私はnet.sf.ehcache.CacheManagerに戻ってCacheManagerを変更しようとしたが、私はローカルでこれを取得:java.lang.IllegalStateException:によって引き起こさ

んCacheResolver 指定、および型のCacheManagerのないユニークなBeanは見つかりませんでした。 1つを プライマリ(または「cacheManager」という名前を付ける)としてマークするか、デフォルトの役割を果たす特定の CacheManagerを宣言します。 でorg.springframework.cache.interceptor.CacheAspectSupport.afterSingletonsInstantiated(CacheAspectSupport.java:212) org.springframeworkでorg.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:781) で。 context.support.AbstractApplicationContext.finishBeanFactoryInitialization org.springframework.boot.context.embedded.EmbeddedWebApplicationContextで org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)で(AbstractApplicationContext.java:866) 。リフレッシュ(EmbeddedWebApplicationContext.java:122) at org.springframework。 (SpringApplication.java:737) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication。Javaの: で370) でorg.springframework.boot.SpringApplication.run(SpringApplication.java:314) org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151) 組織で org.springframework.webで.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)で(SpringBootServletInitializer.java:131) .SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169) at org.apache.catalina.core.StandardConte xt.startInternal(StandardContext.java:5156) でorg.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)より ... 42

私が変換すると思うがその答えです、しかし、その答えは、ちょっとしたコードの移動かもしれません。 提案? 追加情報:これはWebサービス内にあります

+0

https://stackoverflow.com/questions/38570211/how-to-have-multiple-cache-manager-configuration-in-spring-cache-java –

+0

同じJVM内のEhcachesは明白な ' CacheManager'の名前です。 'EhCacheManagerFactoryBeanファクトリ=新しいEhCacheManagerFactoryBean(); factory.setCacheManagerName( "MyUniqueCache"); EhCacheCacheManager manager =新しいEhCacheCacheManager(); manager.setCacheManager(manager); 'はエラーを取り除きます。 – manish

答えて

0

私の問題への答えは、Springにキャッシュマネージャを決定させることだったので、私はApplication.javaに@EnableCachingを追加して、サーバー上にキャッシュしたいメソッドで@Cacheableを使用しました。

1

Ehcacheの設定ファイルehcache.xmlをデプロイしない限り、デフォルトの組み込み構成が得られます。この構成はCacheManagerの名前ではなく、最初の例外が示すように、1つのJVMに複数のものを持つことはできません。

最も簡単な解決策は、パッケージではなく、ehcache.xmlを配置し、展開によって選択されることです。

関連する問題