【发布时间】:2014-07-12 15:52:21
【问题描述】:
我做了一个非常基本的喷雾罐测试:
- Akka 2.10 2.24
- Scala 2.10.3
- 喷雾罐 1.3.1
- sbt 0.13
- IntelliJ 13
这是我的代码:
val myListener: ActorRef = system.actorOf(Props[TestHttpListener], "httpListener")
IO(Http) ! Http.Bind(myListener, interface = "localhost", port = 8080)
httpListener 以 Http.Register(self) 响应 Http.Connected。
我使用 sbt 来运行我的代码。它以AbstractMethodError 失败:
[ERROR] [07/12/2014 18:46:48.364] [default-akka.actor.default-dispatcher-5] [ActorSystem(default)] Uncaught error from thread [default-akka.actor.default-dispatcher-5] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
java.lang.AbstractMethodError: spray.can.HttpManager.akka$actor$ActorLogging$_setter_$log_$eq(Lakka/event/LoggingAdapter;)V
at akka.actor.ActorLogging$class.$init$(Actor.scala:335)
at spray.can.HttpManager.<init>(HttpManager.scala:29)
at spray.can.HttpExt$$anonfun$1.apply(Http.scala:153)
at spray.can.HttpExt$$anonfun$1.apply(Http.scala:153)
at akka.actor.TypedCreatorFunctionConsumer.produce(Props.scala:422)
at akka.actor.Props.newActor(Props.scala:331)
at akka.actor.ActorCell.newActor(ActorCell.scala:534)
at akka.actor.ActorCell.create(ActorCell.scala:560)
at akka.actor.dungeon.FaultHandling$class.finishCreate(FaultHandling.scala:135)
at akka.actor.dungeon.FaultHandling$class.faultCreate(FaultHandling.scala:129)
at akka.actor.ActorCell.faultCreate(ActorCell.scala:338)
at akka.actor.dungeon.FaultHandling$class.faultRecreate(FaultHandling.scala:58)
at akka.actor.ActorCell.faultRecreate(ActorCell.scala:338)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:428)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:447)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:262)
at akka.dispatch.Mailbox.run(Mailbox.scala:218)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:385)
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)
【问题讨论】:
-
似乎actor日志记录的版本与喷雾所期望的不同。您可以尝试使用
inspect test或类似的东西检查sbt 中的依赖关系吗? -
您好,谢谢,这就是问题所在:我没有为我正在使用的 spray 版本使用合适的 akka-core 依赖版本。谢谢!
-
酷。添加了答案,以便其他人可以轻松查看正确的解决方案。
标签: scala akka httpserver spray