Playframework 2.0 Akka持久性卡桑德拉与Akka 2.3.0配合使用时抛出致命EOFEException
你知道为什么在将Akka添加到库依赖项并执行Playframework 2.0 Akka持久性卡桑德拉与Akka 2.3.0配合使用时抛出致命EOFEException,playframework-2.0,akka,akka-persistence,Playframework 2.0,Akka,Akka Persistence,你知道为什么在将Akka添加到库依赖项并执行test任务后会出现以下错误吗 Uncaught error from thread [reactivemongo-akka.actor.default-dispatcher-4] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[reactivemongo] akka.actor.ActorCell.create(ActorCel
test
任务后会出现以下错误吗
Uncaught error from thread [reactivemongo-akka.actor.default-dispatcher-4] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[reactivemongo]
akka.actor.ActorCell.create(ActorCell.scala:580)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Exception in thread "Thread-4" java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2596)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1316)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at sbt.React.react(ForkTests.scala:116)
at sbt.ForkTests$$anonfun$mainTestTask$1$Acceptor$2$.run(ForkTests.scala:75)
at java.lang.Thread.run(Thread.java:724)
当我执行run
任务时:
Uncaught error from thread [reactivemongo-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[reactivemongo]
java.lang.AbstractMethodError
at akka.actor.ActorCell.create(ActorCell.scala:580)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
[ERROR] [03/25/2014 15:28:17.309] [reactivemongo-akka.actor.default-dispatcher-2] [ActorSystem(reactivemongo)] Uncaught error from thread [reactivemongo-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
java.lang.AbstractMethodError
at akka.actor.ActorCell.create(ActorCell.scala:580)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
我的相关build.sbt
设置
scalaVersion := "2.10.3"
// Dependencies
resolvers ++= Seq(
"Sonatype Releases" at "http://oss.sonatype.org/content/repositories/releases",
"Krasser's Bintray" at "http://dl.bintray.com/krasserm/maven"
)
libraryDependencies ++= Seq(
// akka
"com.typesafe.akka" %% "akka-actor" % "2.3.0",
"com.typesafe.akka" %% "akka-persistence-experimental" % "2.3.0",
"com.github.krasserm" % "akka-persistence-cassandra_2.10" % "0.2",
// dependency injection
"com.google.inject" % "guice" % "3.0",
"net.codingwell" % "scala-guice_2.10" % "4.0.0-beta",
"javax.inject" % "javax.inject" % "1",
// mongo
"org.reactivemongo" %% "reactivemongo" % "0.10.0",
"org.reactivemongo" %% "play2-reactivemongo" % "0.10.2",
// slick
"com.h2database" % "h2" % "1.3.166",
"com.typesafe" % "config" % "1.0.0",
"com.typesafe.slick" %% "slick" % "1.0.1",
// testing
"org.mockito" % "mockito-core" % "1.9.5" % "test",
"org.specs2" %% "specs2" % "2.3.8" % "test",
"org.scalacheck" %% "scalacheck" % "1.11.3" % "test"
)
// App settings
play.Project.playScalaSettings
还有我的project/plugin.sbt
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1")
这是在我添加带有以下libs的akka持久性插件之后开始的:
"com.typesafe.akka" %% "akka-actor" % "2.3.0",
"com.typesafe.akka" %% "akka-persistence-experimental" % "2.3.0",
"com.github.krasserm" % "akka-persistence-cassandra_2.10" % "0.2"
我安装了Cassandra,并在本地运行它
即使我将这些行中的任何一行注释掉并运行sbt clean
、sbt update
和sbt test
,我仍然会看到此错误。只有当我把它们全部注释掉,我才能运行和测试我的应用程序
我唯一的猜测是,持久性库中的Akka版本与Play2不兼容
听起来对吗?播放2.2.x使用Akka 2.2.x。您需要等待与Akka 2.3兼容的Play 2.3。我敢肯定这就是问题所在。我试图从源代码构建Play以运行2.3快照,但遇到了一个问题,WS-library不再可访问。我只是回复,因为我真的没有足够的时间调查。我只是想看看是否可以使用旧版本的akka persistence。您必须返回到旧的akka
EventSourceed
库,它是akka persistence的前身。如果要使用快照,请知道WS已从Play Core中移出,因此只需添加依赖项即可。类似的问题如下: