关键词:
【中文标题】在 Play Framework 2.4 中为 Scala 实现 Akka【英文标题】:Implementing Akka in Play Framework 2.4 for Scala 【发布时间】:2015-10-20 10:06:13 【问题描述】:我正在尝试复制Integrating with Akka, Play 2.4 for Scala doc 中提出的基本示例。但是我很难将最后的部分放在一起......
我已经使用以下代码在app/actors/HelloActor.scala
定义了演员(参见Writing actors 段):
package actors
import akka.actor._
object HelloActor
def props = Props[HelloActor]
case class SayHello(name: String)
class HelloActor extends Actor
import HelloActor._
def receive =
case SayHello(name: String) =>
sender() ! "Hello, " + name
那么(请参阅Creating and using actors)我想我应该在app/controllers/Hello.scala
创建一个控制器,例如:
package controllers
import play.api.mvc._
import akka.actor._
import javax.inject._
import actors.HelloActor
@Singleton
class Hello @Inject() (system: ActorSystem) extends Controller
val helloActor = system.actorOf(HelloActor.props, "hello-actor")
...
问题:我在哪里以及如何使用以下段落Asking things of actors 中的代码来获得有效的解决方案?我曾尝试将其添加到上述Hello.scala
控制器但没有成功。
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import scala.concurrent.duration._
import akka.pattern.ask
implicit val timeout = 5.seconds
def sayHello(name: String) = Action.async
(helloActor ? SayHello(name)).mapTo[String].map message =>
Ok(message)
【问题讨论】:
它应该按预期工作,你有什么错误? withimplicit val timeout = 5.seconds
我摇摇晃晃地收到以下错误 value seconds is not a member of Int Note: implicit value timeout is not applicable here because it comes after the application point and it lacks an explicit result type
加上我不是 100% 确定如何将所有东西放在控制器中
【参考方案1】:
找到了解决方案,我在定义隐式超时时遇到了一些问题,这是工作控制器:
package controllers
import play.api.mvc._
import akka.actor._
import javax.inject._
import actors.HelloActor
import actors.HelloActor.SayHello
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import scala.concurrent.duration._
import akka.pattern.ask
import akka.util.Timeout
@Singleton
class Hello @Inject() (system: ActorSystem) extends Controller
val helloActor = system.actorOf(HelloActor.props, "hello-actor")
implicit val timeout: Timeout = 5.seconds
def sayHello(name: String) = Action.async
(helloActor ? SayHello(name)).mapTo[String].map message ⇒
Ok(message)
另外我在app/conf/routes
中添加了以下路由:
# Actor test
GET /hello/:name controllers.Hello.sayHello(name)
【讨论】:
如果你写类似implicit val timeout: Timeout = 5.seconds
的东西(注意我已经明确添加了类型)可能会起作用,这是因为显式类型会发生隐式转换。
@EndeNeu 是的,谢谢,它有效,我正在编辑我的答案以反映这一点Play Framework 2.4 发送邮件
】PlayFramework2.4发送邮件【英文标题】:PlayFramework2.4sendingemail【发布时间】:2015-08-1516:39:47【问题描述】:我是Scala新手,发送电子邮件时遇到问题...我正在与Play合作!2.4并且必须遵循build.scala"com.typesafe.play"%%"play-mailer"%"3.0.1"在ap... 查看详情
twitterBootstrap 在 play framework 2.4 中不被识别?
】twitterBootstrap在playframework2.4中不被识别?【英文标题】:twitterBootstrapisnotrecognizedinplayframework2.4?【发布时间】:2015-07-3109:24:42【问题描述】:我正在使用Play框架2.4。我尝试按照https://www.playframework.com/documentation/2.0/ScalaFormHelpers的... 查看详情
如何使用 Jenkins 在本地自动部署 Play Framework (2.4) 应用程序?
】如何使用Jenkins在本地自动部署PlayFramework(2.4)应用程序?【英文标题】:Howtoauto-deployPlayFramework(2.4)applicationlocallywithJenkins?【发布时间】:2015-06-2606:11:20【问题描述】:如何在Jenkins运行的同一台服务器上本地使用Jenkins自动部署Pl... 查看详情
如何在scala play framework 2.4中定义onStart方法
】如何在scalaplayframework2.4中定义onStart方法【英文标题】:HowtodefineonStartmethodinscalaplayframework2.4【发布时间】:2015-11-2511:34:09【问题描述】:如何使用scala在playframework2.4中定义启动作业?playframeworkGlobalSetting我已经:classStartupConfigu... 查看详情
如何在 play framework(scala) 2.4 中获取当前会话或请求对象?
】如何在playframework(scala)2.4中获取当前会话或请求对象?【英文标题】:howtogetcurrentsessionorrequestobjectinplayframework(scala)2.4?【发布时间】:2016-03-0405:37:21【问题描述】:我正在使用带有Scala的PlayFramework2.4开发应用程序。在我的应用... 查看详情
由于构建或路由导致 Play Framework 2.4 编译错误
】由于构建或路由导致PlayFramework2.4编译错误【英文标题】:PlayFramwork2.4compileerrorduetobuildorrouting【发布时间】:2015-11-0820:35:15【问题描述】:今天,一边用Play!做教程!框架,我在编译源码的时候遇到了一个问题,貌似和路由有... 查看详情
Play Framework 2.4 在 Scala 模板中使用注入变量
】PlayFramework2.4在Scala模板中使用注入变量【英文标题】:PlayFramework2.4useinjectedvariableinScalatemplate【发布时间】:2015-10-0414:44:24【问题描述】:我想在我的网页菜单栏中显示一些数据库中的数据。为了获取数据,我有一个通常使用G... 查看详情
Play Framework 2.4 授权
】PlayFramework2.4授权【英文标题】:PlayFramework2.4authorization【发布时间】:2015-07-2310:07:43【问题描述】:我有一个代表用户系统的类(帐户)。帐户包含字段角色。它是包含三个案例的枚举。帐号类publicclassAccountextendsModel@Id@Emailpub... 查看详情
Play framework 2.4 表单填写不起作用
】Playframework2.4表单填写不起作用【英文标题】:Playframework2.4formfilldoesnotwork【发布时间】:2015-11-1222:36:54【问题描述】:在PlayFramework2.4Java中,我需要使用以下代码填写表单,但它不起作用。usereditform.field("email").value()的输出值... 查看详情
在play framework 2.4中,如何访问ssl socket(或ssl client cert)
】在playframework2.4中,如何访问sslsocket(或sslclientcert)【英文标题】:Inplayframework2.4,howtoaccesssslsocket(orsslclientcert)【发布时间】:2015-08-0421:57:05【问题描述】:使用播放框架2.4。我通过提供我自己的SSLEngineProvider实现打开了需要的... 查看详情
在 Play framework 2.4 中使用 Slick 3 在哪里初始化数据库?
】在Playframework2.4中使用Slick3在哪里初始化数据库?【英文标题】:WheretoinitializeadatabaseinPlayframework2.4withSlick3?【发布时间】:2015-09-1001:50:56【问题描述】:当数据库表不存在时,Slick3.0.2不会自动创建数据库表,因此您必须执行以... 查看详情
如何将 CDN 与 Play Framework 2.4 资产一起使用?
】如何将CDN与PlayFramework2.4资产一起使用?【英文标题】:HowtouseaCDNwithPlayFramework2.4Assets?【发布时间】:2015-07-0619:34:52【问题描述】:我想使用在通过以下方式获取资产时自动添加到资产URL的CDNURL:@routes.Assets.versioned("js/whatever.js"... 查看详情
我可以在 Play Framework 2.4 中从两个没有转换器的模型中编写 Json
】我可以在PlayFramework2.4中从两个没有转换器的模型中编写Json【英文标题】:CanIwriteJsonfromtwomodelwithouttransformersinPlayFramework2.4【发布时间】:2015-12-1612:10:13【问题描述】:我有两个modelclassescaseclassCalendar(id:String,summary:String)caseclassA... 查看详情
Play Framework 2.4 全局对象迁移
】PlayFramework2.4全局对象迁移【英文标题】:PlayFramework2.4Globalobjectmigration【发布时间】:2016-04-1405:43:20【问题描述】:我目前正在将我的PlayFramework项目从2.3迁移到2.4。现在我需要迁移我的全局对象。以下是他们迁移指南中的记录... 查看详情
Play framework 2.4 打包后无法加载图片(404 source not found)
】Playframework2.4打包后无法加载图片(404sourcenotfound)【英文标题】:Playframework2.4cannotloadimageafterpackaging(404sourcenotfound)【发布时间】:2015-08-1013:17:42【问题描述】:我在Windows上使用Play框架2.4版已经有一段时间了。Web应用程序在开... 查看详情
Play Framework 2.4 - 注入的字段始终为空
】PlayFramework2.4-注入的字段始终为空【英文标题】:PlayFramework2.4-Injectedfieldsarealwaysnull【发布时间】:2015-09-1423:54:39【问题描述】:我有一个简单的注入模块:publicclassInjectionModuleextendsAbstractModule@Overrideprotectedvoidconfigure()bind(SomeMod... 查看详情
从 Play Framework 更改 WS API! 2.4 至 2.5
】从PlayFramework更改WSAPI!2.4至2.5【英文标题】:ChangingWSAPIfromPlayFramework!2.4to2.5【发布时间】:2016-05-1013:23:47【问题描述】:使用Playframework!2.5WS请求的结果现在是CompletionStage<WSResponse>。CompletionStage<WSResponse>completi 查看详情
Play Framework 2.4 多个Promises的顺序运行
】PlayFramework2.4多个Promises的顺序运行【英文标题】:PlayFramework2.4SequentialrunofmultiplePromises【发布时间】:2016-04-1817:45:12【问题描述】:我有一个Play2.4(基于Java)的应用程序,其中一些后台Akka任务实现为返回Promise的函数。Task1通... 查看详情