2012-07-13 21 views
7

Oto mój kod:Komunikat o błędzie z Scala AKKA aktora

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)) 
} 

Otrzymuję błąd z tej linii:

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

błędu jest:

nie mógł znaleźć wartość niejawny dla parametru timeout: akka.util.Timeout

Odpowiedz

13

dodaj coś takiego jak implicit val timeout = Timeout(5 seconds). Zobacz http://doc.akka.io/docs/akka/2.0.1/scala/futures.html

Nawiasem mówiąc, musisz również zmienić

def receive = { 
     case "test" ⇒ sender ! "works" 
} 

i

test = Await.result(myActor ? "test", timeout.duration).asInstanceOf[String] 
+0

Co jeśli chcę po prostu użyć domyślnego. http://doc.akka.io/api/akka/2.0/akka/actor/ActorRef.html wspomina (w komentarzach), że istnieje 'akka.actor.timeout'. Jak to zrobić? – akauppi

Powiązane problemy