これはおそらく非常に単純なエラーですが、正しく動作するようにはできません。 私はスカラーでアクターベースのアプリケーションを作成するためにakka 2.2.3を使用しています。俳優を作成
単純化された設定は以下の通りです:
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