我使用 IntelliJ IDEA 创建了一个新的 Play Framework 2 应用程序。我在默认项目中唯一更改的是创建 Java Controller Application
而不是默认的 Scala Controller (名称相同)并将 Akka 添加到项目中。
这是我的 build.sbt 构建的样子:
import play.Project._
name := "ServerSide"
version := "1.0"
// the following line was added
libraryDependencies += "com.typesafe.akka" % "akka-actor_2.10" % "2.3.3"
playScalaSettings
该项目编译得很好,但是当我启动它时,它会出现明显的 Akka 特定错误(实际上它在日志中重复了大约 5 次):
[ERROR] [07/23/2014 15:27:57.462] [play-akka.actor.default-dispatcher-2] [ActorSystem(play)] Uncaught error from thread [play-akka.actor.default-dispatcher-2] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
java.lang.AbstractMethodError
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
at akka.actor.ActorCell.invoke(ActorCell.scala:487)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
at akka.dispatch.Mailbox.run(Mailbox.scala:220)
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
中删除 Akka 可以解决该问题。
错误的原因是什么以及如何修复它?
最佳答案
我得出的答案是:
我从 activator
创建的项目中复制了 build.sbt
,但 Intellij Idea 创建的项目很可能使用了该框架的早期版本,因此不兼容与 Akka 。将 Akka 版本更改为 2.2.4 解决了我的问题。
关于java - 为什么在 IDEA 中创建的默认 Play 应用程序在启动时崩溃,并将 Akka 2.3.3 声明为依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24909459/