scala - Play framework 2.0 - deadLetters 而不是 Actor

标签 scala akka playframework-2.0

出于学习目的,我正在尝试实现一个从远程 Actor 获取数据的简单 Play 应用程序。 Actor 的代码如下:

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 框架中获取 Actor 。在Application对象我定义了以下方法:

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

然后在models包我定义了客户端对象:

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> .我做错了什么以及应该如何正确完成?

最佳答案

请按照给出的配置

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

同时添加 akka-remote 依赖

val appDependencies = Seq(
    "com.typesafe.akka" % "akka-remote" % "2.0.2"
)

关于scala - Play framework 2.0 - deadLetters 而不是 Actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10040503/

相关文章:

akka - MaximumNumberOfRestartsWithinTimeRangeReached 相当于 Akka 2.0

Eclipse 不更新我的 Play 框架应用程序的引用库

Scala 2.13 迁移

scala - 最佳实践 : "If not immutable create copy"-pattern

json - 使用 Spark 和 scala 从 Spark 数据帧中的 JSON 类型列中获取所有值,而不考虑键

scala - Akka Actor 日志记录未写入文件

playframework - Akka 远程 actor 无法在 Play!应用程序

java - 迁移到 2.4 后 Play 的路由文件出现问题

java - 在使用 playframework 2 应用程序时,我是否应该将所有 View 对象放入包模型中?

postgresql - 将 Scala Slick 与数据库枚举结合使用