【发布时间】:2013-12-26 13:46:35
【问题描述】:
这可能是一个非常简单的错误,但我无法让它正常工作。 我正在使用 akka 2.2.3 在 scala 中创建一个基于 actor 的应用程序。
简化的设置如下:
object Main {
def main(args: Array[String]) = {
val system = ActorSystem("Test")
val discoverer = system.actorOf(Props[Discoverer], "discoverer")
implicit val timeout = Timeout(5.seconds)
val not = discoverer ? Messages.Find(something)
not.onComplete {
case Success(va) => println(va)
case Failure(err) => println(err)
}
...
}
}
还有男主
class Discoverer extends Actor {
override def preStart() = {
val refresher = context.actorOf(Props[Refresher], "refresher")
refresher ! Refresh
}
def receive = {
case _ => sender ! Answer
}
}
还有Refresher 演员
class Refresher extends Actor {
...
}
你应该从中得到的是,我的演员都没有参数化的构造函数。
但是,如果我尝试运行我的应用程序,它会失败
[ERROR] [12/09/2013 13:17:06.893] [Test-akka.actor.default-dispatcher-3]
[akka://Test/user/discoverer] no matching constructor found on
class Discoverer$Refresher for arguments []
我的错误是什么?我不应该用.actorOf(Props[Class], "actorname") 创建我的演员吗?
【问题讨论】:
-
我非常确定问题在于您将内部类用于 Refresher 类。说不出为什么。
-
@om-nom-nom 这就是问题所在。谢谢你。不过很高兴知道为什么会这样。