这可能是一个非常简单的错误,但我无法让它正常工作.我正在使用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")
吗?