【问题标题】:Play framework 2.0 - deadLetters instead of an ActorPlay framework 2.0 - deadLetters 代替 Actor
【发布时间】:2012-04-06 07:29:48
【问题描述】:

出于学习目的,我正在尝试实现一个简单的播放应用程序,该应用程序从远程参与者获取数据。演员的代码如下:

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 时,我会得到一个包含服务器参与者路径的页面。而不是这个,我得到&lt;h1&gt;deadLetters&lt;/h1&gt;。我做错了什么以及应该如何正确地做到这一点?

【问题讨论】:

  • 您是否启用了两端的远程处理?
  • @ViktorKlang :我尝试以类似于普通 akka 的方式启用远程处理,但是没有 akka-remote 包,所以我只得到了java.lang.ClassNotFoundException: akka.remote.RemoteActorRefProvider 并且不知道还能做什么。
  • 对不起,我可能有什么不明白的地方。我阅读了这些手册,发现它们非常有用,事实上,当我在一个普通的 akka 应用程序中进行远程处理时,它就可以正常工作。但是如何在 play 框架下启用 akka 远程处理呢?将 akka-remote 依赖添加到 play 应用的 sbt 配置并编写与普通 akka 相同的配置文件就足够了吗?
  • 您需要询问 Play!团队对此,他们随 Play 发布了一个 reference.conf 文件! 2:github.com/playframework/Play20/blob/master/framework/src/play/… 我假设这些事情在 Play 中有记录! 2个文档。 :-)

标签: scala akka playframework-2.0


【解决方案1】:

请按照中给出的配置

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

并且还添加了akka-remote依赖

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多