标签: playframework-2.4

Playframework 2.4中的自定义路由器

我正在使用Play 2.4.我想用我自己的类替换默认路由器,使用新的动态依赖注入播放功能.这样做的步骤是什么?

scala url-routing playframework playframework-2.4

8
推荐指数
1
解决办法
912
查看次数

PlayFramework 2.4在应用程序启动后运行一些代码

在Play 2.4中,覆盖ApplicationLoader中的builder方法或在Abstract模块中实现EagerBinding将替换现有的play 2.3 GlobalSettings onStart.

但是在onStart方法2.3中,您的应用程序已经开始加载所有插件/依赖项.你可以在游戏2.4中做同样的事情,即在应用程序启动后运行一段代码.

在我的情况下,Slick要求应用程序在它可以访问数据库之前已经启动.

谢谢

playframework playframework-2.4

8
推荐指数
2
解决办法
2204
查看次数

如何在Play Framework 2.4.2 scala中正确安排任务?

尝试在Play Framework 2.4.2 Scala中安排这样的任务,但没有运气:

import akka.actor.Actor
import play.api.libs.concurrent.Akka
import scala.concurrent.duration._
import play.api.Play.current
import scala.concurrent.ExecutionContext.Implicits.global

class Scheduler extends Actor {

  override def preStart() {
    val dbupdate = Akka.system.scheduler.schedule(
      0.microseconds, 5.minutes, self, "update")
    val pictureClean = Akka.system.scheduler.schedule(
      0.microseconds, 30.minutes, self, "clean")
  }

  def receive = {
    case "update" => updateDB()
    case "clean" => clean()
  }

  def updateDB(): Unit ={
    Logger.debug("updates running")
  }

  def clean(): Unit ={
    Logger.debug("cleanup running")
  }
}
Run Code Online (Sandbox Code Playgroud)

控制台中没有打印任何内容.我做错了什么?

scala scheduled-tasks guice playframework-2.4

8
推荐指数
1
解决办法
5047
查看次数

在Play Framework 2.4.x中解决CORS问题

我有一个java play框架2.4.x Web应用程序,提供JSON/HTTP API.当我运行我的前端HTML/JS file:///Users/nize/tmp/index.htmlhttp://localhost:9000chrome show上调用API时

XMLHttpRequest cannot load http://localhost:9000. 
No 'Access-Control-Allow-Origin' header is present 
on the requested resource. Origin 'null' is therefore 
not allowed access. The response had HTTP status code 403.
Run Code Online (Sandbox Code Playgroud)

我已根据Play Framework 2.4.x CORS文档中的说明配置了Web应用程序:

  • 更新到 build.sbt
  • 将类添加Filters.java到项目的根目录(也尝试过/app)
  • 添加以下节到 application.conf

    play.filters.cors {allowedOrigins = ["*"," http:// localhost "] #allowedHttpMethods = ["GET","POST"] #allowedHttpHeaders = ["Accept"] #preflightMaxAge = 3 days}

我错过了什么?

编辑: 症状看起来与其他非常相似的stackoverflow帖子相同或类似.通过重新配置计算机上安装的Cisco AnyConnect VPN解决了该问题.但是,我没有安装该软件.

java cors playframework playframework-2.4

8
推荐指数
4
解决办法
7940
查看次数

在生产中的播放框架中从公共文件夹中读取文件

我的播放应用程序是2.4.2.在开发人员模式中,我曾经使用Source.fromFile("./ public/files/abc.json")从后端控制器的公用文件夹中读取文件

当我将应用程序转换为生产模式时,我收到了File Not Found Exceptions.我发现公用文件夹在生产模式下打包在资产jar中.我能做什么才能在开发和生产模式下工作?

playframework playframework-2.4

8
推荐指数
1
解决办法
5749
查看次数

Scala Play Framework - 控制器作为类或单例

我正在尝试Play 2.4.2 for Scala,我不清楚控制器是应该定义为类还是单例.文档说明:

Controller只不过是一个生成Action值的单例对象.

但是代码示例显示:

class Application extends Controller { ... }
Run Code Online (Sandbox Code Playgroud)

为了进一步复杂化,如果我定义一个类,intellij会给我一个警告:

intellij警告

但是,如果我使用单例,我会收到编译错误(但没有警告):

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller { ... }
Run Code Online (Sandbox Code Playgroud)

错误:(6,-1)播放2编译器:/ Users/Toby/IdeaProjects/play-scala/conf/routes:6:type应用程序不是包控制器的成员

哪种方法是正确的?

scala playframework playframework-2.4

7
推荐指数
1
解决办法
2042
查看次数

在Play Framework 2.4中播放Evolutions和JPA

我将Play项目从版本2.3.4迁移到2.4.2.这些项目使用JPA(Hibernate)和Evolutions.我有一个最初的Evolutions SQL脚本,它用一些示例数据填充数据库.此脚本现在不再起作用,因为Evolutions脚本现在在Hibernate生成表之前执行,这显然会导致错误.这是一个理想的行为吗?有没有办法改变执行顺序?

hibernate jpa playframework playframework-evolutions playframework-2.4

7
推荐指数
1
解决办法
629
查看次数

UUID Path Bindable - Play Framework

在我的build.sbt中我有

routesImport += "play.api.mvc.PathBindable.bindableUUID"
Run Code Online (Sandbox Code Playgroud)

在我的路线我有:

GET      /groups/:id     controllers.GroupController.get(id)
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我有

class GroupController { ....

   def get (id: UUID)   
Run Code Online (Sandbox Code Playgroud)

我对上述路线收到以下错误

type mismatch;
 found   : String
 required: java.util.UUID
Run Code Online (Sandbox Code Playgroud)

如何在Play中的路径文件中的路径中使用uuid.我正在使用游戏2.4.2 - scala 2.11.7

scala playframework playframework-2.4

7
推荐指数
1
解决办法
1670
查看次数

在游戏中使用演员

我按照戏剧描述如何使用演员:https://www.playframework.com/documentation/2.4.x/ScalaAkka他们建议如下:

@Singleton
class Application @Inject() (system: ActorSystem) extends Controller {

  val helloActor = system.actorOf(HelloActor.props, "hello-actor")

  //...
}
Run Code Online (Sandbox Code Playgroud)

但这会导致:

play.sbt.PlayExceptions$CompilationException: Compilation error[trait Singleton is abstract; cannot be instantiated]
        at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
        at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:49) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:44) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
        at play.sbt.run.PlayReload$.taskFailureHandler(PlayReload.scala:44) ~[na:na]
        at play.sbt.run.PlayReload$.compileFailure(PlayReload.scala:40) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
        at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
Run Code Online (Sandbox Code Playgroud)

Tos看到我做了什么或跟着做了什么:https://github.com/dataplayground/playground

编辑:

@Singleton导线移至:

could not find implicit value for parameter timeout: akka.util.Timeout
Run Code Online (Sandbox Code Playgroud)

这是代码:

implicit …
Run Code Online (Sandbox Code Playgroud)

singleton akka playframework playframework-2.4

7
推荐指数
1
解决办法
2336
查看次数

Specs2:如何测试具有多个注入依赖项的类?

玩2.4应用程序,使用服务类的依赖注入.

我发现当被测试的服务类具有多个注入依赖项时,Specs2会发生阻塞.它失败了" 找不到类的构造函数...... "

$ test-only services.ReportServiceSpec
[error] Can't find a constructor for class services.ReportService
[error] Error: Total 1, Failed 0, Errors 1, Passed 0
[error] Error during tests:
[error]         services.ReportServiceSpec
[error] (test:testOnly) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 2 s, completed Dec 8, 2015 5:24:34 PM
Run Code Online (Sandbox Code Playgroud)

生产代码,剥离到最低限度以重现此问题:

package services

import javax.inject.Inject

class ReportService @Inject()(userService: UserService, supportService: SupportService) {  
   // ...  
}

class UserService {  
   // ...  
}

class SupportService {  
   // ...  
}
Run Code Online (Sandbox Code Playgroud)

测试代码:

package …
Run Code Online (Sandbox Code Playgroud)

dependency-injection scala playframework specs2 playframework-2.4

7
推荐指数
1
解决办法
2250
查看次数