這可能是一個非常簡單的錯誤,但我無法使其正常工作。 我正在使用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")
創建我的演員嗎?
我幾乎可以肯定,問題是你正在使用內部類的進修班。不能說爲什麼。 –
@ om-nom-nom這是問題所在。謝謝。不過,很高興知道這是爲什麼。 – mgttlinger