3

学習目的で、リモート アクターからデータを取得する単純な再生アプリケーションを実装しようとしています。アクターのコードは次のとおりです。

import akka.actor.{Props, ActorSystem, Actor}

class NumbersServer extends Actor {
  var number = 0
  protected def receive = {
    case 'next => {
      number += 1
      number
    }
    case 'reset => number = 0
    case 'exit => context.stop(self)
    case 'get => sender ! number
  }
}

object Server {
  def main(args: Array[String]) {
    val system = ActorSystem("ServerSystem")
    val server = system.actorOf(Props[NumbersServer], "server")
  }
}

これを jar にパッケージ化し、コマンド ラインから起動します。別のウィンドウから開いた Scala コンソールからこのアクターにメッセージを送信しようとすると、すべて正常に動作します。ここで、Play フレームワークからアクターを取得したいと考えています。Applicationオブジェクトで、次のメソッドを定義します。

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

次に、modelsパッケージで Client オブジェクトを定義します。

object Client {
  import play.api.Play.current
  val actor = Akka.system.actorFor("akka://ServerSystem@127.0.0.1:2552/user/server")
}

numbers.html.scalaファイル:

@(message: String)

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

したがって、 にアクセスする127.0.0.1:9000/numbersと、サーバー アクターへのパスを含むページが表示されると思います。これの代わりに、私は<h1>deadLetters</h1>. 私は何を間違っており、これを正しく行うにはどうすればよいですか?

4

1 に答える 1

0

で指定された構成に従ってください

https://groups.google.com/forum/#!topic/akka-user/Vw-B8nQeagk

また、 akka-remote 依存関係を追加します

val appDependencies = Seq(
    "com.typesafe.akka" % "akka-remote" % "2.0.2"
)
于 2012-07-10T06:39:45.517 に答える