Scala AKKA Actor的错误信息

7
这是我的代码:
class testActor extends Actor   {
    var test = "test2"
    def receive = {
            case "test""works"
    }
} 

def test = Action {
    var test = "test"
    val system = ActorSystem("MySystem")
    val myActor = system.actorOf(Props[testActor.testActor], name = "testActor")

    test = Await.result(myActor ? "test", Duration(1, TimeUnit.SECONDS))
}

我在这一行代码中遇到了一个错误:

test = Await.result(myActor ? "test", Duration(1, TimeUnit.SECONDS))

错误信息为:

无法找到参数timeout的隐式值:akka.util.Timeout。

1个回答

13

添加类似于implicit val timeout = Timeout(5 seconds)的内容。请参阅http://doc.akka.io/docs/akka/2.0.1/scala/futures.html

顺便提一下,你还需要更改

def receive = {
        case "test" ⇒ sender ! "works"
}
并且
test = Await.result(myActor ? "test", timeout.duration).asInstanceOf[String]

如果我想简单地使用默认设置怎么办?http://doc.akka.io/api/akka/2.0/akka/actor/ActorRef.html在注释中提到了`akka.actor.timeout`。如何让它生效? - akauppi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接