2012-04-06 8 views
3

Für Lernzwecke versuche ich eine einfache Play-Anwendung zu implementieren, die Daten von einem entfernten Akteur bekommt. Der Code für den Aktor lautet wie folgt:Play framework 2.0 - deadLetters anstelle eines Actors

Ich verpacke es in ein Glas und starten Sie es über die Befehlszeile. Wenn ich versuche, Nachrichten von einer Scala-Konsole, die von einem anderen Fenster aus geöffnet wurde, an diesen Akteur zu senden, funktioniert alles einwandfrei. Jetzt möchte ich den Schauspieler aus dem Play-Framework holen. Im Application Objekt definiere ich die folgende Methode:

def numbers = Action { 
    Ok(views.html.numbers(Client.actor.path.name)) 
} 

Dann in dem models Paket definiere ich das Client-Objekt:

object Client { 
    import play.api.Play.current 
    val actor = Akka.system.actorFor("akka://[email protected]:2552/user/server") 
} 

Die numbers.html.scala Datei:

@(message: String) 

@main("Header") { 
    <h1>@message</h1> 
} 

So erwarte ich, dass Wenn ich zu 127.0.0.1:9000/numbers gehe, würde ich eine Seite mit dem Pfad zum Server-Akteur bekommen. Stattdessen bekomme ich <h1>deadLetters</h1>. Was mache ich falsch und wie soll das richtig gemacht werden?

+0

Haben Sie schon aktiviert Remoting auf beiden Seiten hinzufügen? –

+0

@ViktorKlang: Ich habe versucht, das Remoting im Play analog zu plain akka zu aktivieren, aber es gibt kein akka-remote-Paket, also habe ich 'java.lang.ClassNotFoundException: akka.remote.RemoteActorRefProvider' und bin mir nicht sicher, was sonst noch machen. –

+0

Akka Docs sind ziemlich gut: http://doc.akka.io/docs/akka/2.0/scala/remoting.html –

Antwort