在Play 2.5.3中,使用Scala:
我使用缓存作为一个模块,每次我更改代码,然后刷新我的浏览器,在重新编译后,我得到了以下问题:
[TechnicalException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error in custom provider, play.api.cache.EhCacheExistsException: An EhCache instance with name 'play' already exists.
This usually indicates that multiple instances of a dependent component (e.g. a Play application) have been started at the same time.
at play.api.cache.EhCacheModule.play$api$cache$EhCacheModule$$bindCache$1(Cache.scala:184):
Binding(interface net.sf.ehcache.Ehcache qualified with QualifierInstance(@play.cache.NamedCache(value=play)) to ProviderTarget(play.api.cache.NamedEhCacheProvider@2dfe19e7)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating net.sf.ehcache.Ehcache annotated with @play.cache.NamedCache(value=play)
at play.api.cache.EhCacheModule.play$api$cache$EhCacheModule$$bindCache$1(Cache.scala:185):
Binding(interface play.api.cache.CacheApi qualified with QualifierInstance(@play.cache.NamedCache(value=play)) to ProviderTarget(play.api.cache.NamedCacheApiProvider@6f7b9e34)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
while locating play.api.cache.CacheApi annotated with @play.cache.NamedCache(value=play)
while locating play.api.cache.CacheApi
for parameter 0 at play.cache.DefaultCacheApi.<init>(DefaultCacheApi.java:20)
at play.cache.DefaultCacheApi.class(DefaultCacheApi.java:20)
while locating play.cache.DefaultCacheApi
while locating play.cache.CacheApi
1 error]我对一些角色使用缓存(命名缓存,而不是默认的play)。我该如何解决这个问题呢?
谢谢!
发布于 2016-08-20 03:04:03
您是否禁用了EHCache?
在application.conf中:
# disable default Play framework cache plugin
play.modules.disabled += "play.api.cache.EhCacheModule"发布于 2019-11-21 09:28:00
我在更新的post EhCache instance with name 'play' already exists中找到了一个解决方案。这只是一个变通方法,但它是有效的,关键部分是:
lifecycle.addStopHook { () =>
logger.info("CacheInstance stopped")
Future.successful(CacheManager.getInstance().shutdown())
}设置完整代码的帖子。
https://stackoverflow.com/questions/39031863
复制相似问题