从播放框架 2.0.8 迁移到 2.1.0 错误:缓存播放已存在
Posted
技术标签:
【中文标题】从播放框架 2.0.8 迁移到 2.1.0 错误:缓存播放已存在【英文标题】:migration from play framework 2.0.8 to 2.1.0 ERROR: cache play already exists 【发布时间】:2015-02-03 12:02:37 【问题描述】:我已经从 play framework 2.0.8 迁移到 2.1.0,一切看起来都很完美,但我收到以下错误:
play.api.UnexpectedException: 意外异常[ObjectExistsException: 缓存播放已经存在] 在 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:142) ~[play_2.10.jar:2.1.0] 在 play.core.ReloadableApplication$$anonfun$get$1$$anonfun$1.apply(ApplicationProvider.scala:106) ~[play_2.10.jar:2.1.0] 在 scala.Option.map(Option.scala:145) ~[scala-library.jar:na] 在 play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:106) ~[play_2.10.jar:2.1.0] 在 play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:104) ~[play_2.10.jar:2.1.0] 在 scala.util.Either$RightProjection.flatMap(Either.scala:523) [scala-library.jar:na] 引起:net.sf.ehcache.ObjectExistsException:缓存播放已经存在 在 net.sf.ehcache.CacheManager.addCache(CacheManager.java:1163) ~[ehcache-core.jar:na] 在 play.api.cache.EhCachePlugin.x$1$lzycompute(Cache.scala:122) ~[play_2.10.jar:2.1.0] 在 play.api.cache.EhCachePlugin.x$1(Cache.scala:120) ~[play_2.10.jar:2.1.0] 在 play.api.cache.EhCachePlugin.cache$lzycompute(Cache.scala:120) ~[play_2.10.jar:2.1.0] 在 play.api.cache.EhCachePlugin.cache(Cache.scala:120) ~[play_2.10.jar:2.1.0] 在 play.api.cache.EhCachePlugin.onStart(Cache.scala:138) ~[play_2.10.jar:2.1.0]
这个问题有什么解决办法吗?
谢谢!
已编辑 这是我的 build.scala
import sbt._
import Keys._
import play.Project._
import com.github.play2war.plugin._
object ApplicationBuild extends Build
val appName = "Lndlabproject"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
javaCore, javaJdbc, javaJpa,
"mysql" % "mysql-connector-java" % "5.1.18",
"org.hibernate" % "hibernate-entitymanager" % "4.1.3.Final",
"org.apache.httpcomponents" % "httpclient" % "4.0.3",
"japid42" % "japid42_2.9.1" % "0.5.3",
"org.apache.poi" % "poi" % "3.8",
"org.apache.poi" % "poi-ooxml" % "3.9",
"com.feth" %% "play-easymail" % "0.1-SNAPSHOT",
"org.apache.directory.studio" % "org.apache.commons.io" % "2.4",
"org.apache.ant" % "ant-jsch" % "1.7.1",
"play" % "spring_2.9.1" % "2.0" exclude("play","play_2.9.1")
)
val main = play.Project(appName, appVersion, appDependencies).settings(
Play2WarPlugin.play2WarSettings: _*)
.settings(Play2WarKeys.servletVersion := "2.5")
.settings(
// Add your own project settings here
ebeanEnabled := false,
resolvers += Resolver.url("My GitHub Play Repository", url("http://branaway.github.com/releases/"))(Resolver.ivyStylePatterns),
resolvers += Resolver.url("play-easymail (release)", url("http://joscha.github.com/play-easymail/repo/releases/")) ( Resolver.ivyStylePatterns),
resolvers += Resolver.url("play-easymail (snapshot)", url("http://joscha.github.com/play-easymail/repo/snapshots/"))(Resolver.ivyStylePatterns)
)
编辑
这里是播放依赖命令的结果
+--------------------------------------------- -------------------------------------------+------------------ ----------------------------------------------+--- -------------------------------------------------+ | net.sf.ehcache:ehcache-core:2.6.0 |播放:播放_2.10:2.1.0 |作为 ehcache-core.jar | | |播放:播放_2.9.1:2.0.4 | | +-------------------------------------------------- ----------------------------------------+---------- --------------------------------------------+------ ----------------------------------------------+
如何排除呢?
【问题讨论】:
你可以在我的问题中看到 Build.scala,是的 100 次。 【参考方案1】:日志说你有 2 个缓存插件
通过play dependencies
检查重复依赖
通过做排除重复的依赖
("play" % "play_2.10" % "2.1.1") .exclude("oauth.signpost", "signpost-core")
在 build.scala 中(派生自).exclude(重复依赖项之一)。
【讨论】:
通过(dependency).exclude("play","*")
排除 build.scala 中的依赖项
你能写出正确的语法吗?那真的很有帮助。谢谢。
@AbdulAleemAkhund 首先通过我的答案中描述的方法找到重复的依赖项,然后在 build.scala 中执行 ("play" % "play_2.10" % "2.1.1") .exclude("oauth.signpost", "signpost-core")
(derived from).exclude(one of the duplicate dependency)
我用过 ("play" % "play_2.9.1" % "2.0.4") .exclude("", "") 并且它已经解决了所有依赖,但我又遇到了同样的错误。如何解决这个问题。?有什么想法吗?
在排除中,您必须放置重复的依赖项,这就是为什么我告诉您通过play dependency
找到重复的依赖项然后通过(derived from).exclude(one of the duplicate dependency)
排除它。顺便说一句,您如何从某个 IDE 运行项目还是直接从终端?以上是关于从播放框架 2.0.8 迁移到 2.1.0 错误:缓存播放已存在的主要内容,如果未能解决你的问题,请参考以下文章