标签: playframework-2.2

Play 2.2 - specs2 - 如何测试2.2中的期货?

我测试期货的方式是使用value1.我迁移到了play2.2.我发现,我习惯的测试方法已经消失了.@ scala.deprecated("使用scala.concurrent.Promise代替.","2.2")

任何帮助将不胜感激.

奥利弗

unit-testing scala future specs2 playframework-2.2

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

Play Framework 2.2动作组合返回自定义对象

我正在尝试创建一个自定义play.api.mvc.Action,可用于CustomerAccount根据请求填充a 并传递CustomerAccount到控制器.

对播放2.2.x的文档,我创建了一个ActionActionBuilder,但我似乎无法返回CustomerAccount从动作中.

我目前的代码是:

case class AccountWrappedRequest[A](account: CustomerAccount, request: Request[A]) extends WrappedRequest[A](request)

case class Account[A](action: Action[A]) extends Action[A] {
  lazy val parser = action.parser

  def apply(request: Request[A]): Future[SimpleResult] = {
    AccountService.getBySubdomain(request.host).map { account => 
      // Do something to return the account like return a new AccountWrappedRequest?
      action(AccountWrappedRequest(account, request))
    } getOrElse {
      Future.successful(NotFound(views.html.account_not_found()))
    }
  }
}

object AccountAction extends ActionBuilder[AccountWrappedRequest] { 
  def invokeBlock[A](request: Request[A], block: (AccountWrappedRequest[A]) => …
Run Code Online (Sandbox Code Playgroud)

action scala before-filter playframework playframework-2.2

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

无法在Ebean服务器中注册类(Play Framework 2 - Java)

运行Play Framework 2.2.x(Java)项目时出现以下错误:

Configuration error
Cannot register class [models.SomeClass] in Ebean server
Run Code Online (Sandbox Code Playgroud)

浏览器中显示的错误消息将我指向我的行ebean.default="models.*",application.conf控制台告诉我我的java.lang.VerifyError: Bad type on operand stack一个方法.对于这种情况发生的方法没有什么特别之处,现在已经发生了一些方法.

我发现使用静态方法可以避免错误:即替换someObject.doJob()SomeClass.doJob(someObject).我已经使用过这个hack,它可以工作,但是我不是很高兴我的所有方法都应该是静态的.

有没有人遇到同样的问题,并找到了解决方法(不使方法静态)?

java playframework ebean playframework-2.2

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

将MySql添加到playframework 2.2.1

我正在尝试使用play框架连接到mysql数据库.从我自己的搜索,我知道我需要在某处添加此行:

"mysql" % "mysql-connector-java" % "5.1.18"

但是,在每个文档/类似问题中,它都表示此行或者进入Build.scala文件或build.sbt文件,而我没有这些文件.当我创建我的应用程序(作为一个Java应用程序)时,它只给了我一个build.properties,plugins.sbt它在项目文件夹中.

有谁知道如何添加这条线?我需要创建其中一个文件吗?

我的build.properties档案:

 sbt.version=0.13.0
Run Code Online (Sandbox Code Playgroud)

plugins.sbt

// Comment to get more information during initialization
logLevel := Level.Warn

// The Typesafe repository
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"

// Use the Play sbt plugin for Play projects
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.2.1")
Run Code Online (Sandbox Code Playgroud)

更新:添加后

addSbtPlugin("mysql" % "mysql-connector-java" % "5.1.18") 到我的插件文件:

在此输入图像描述

java mysql playframework playframework-2.2

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

播放框架路由和scala predef值

我在play framework 2.2上开发应用程序我有一个像这样的路由文件:

GET  /posting/          controllers.posting.BlogController.allPosts()
GET  /posting/:number   controllers.posting.BlogController.allPosts(number: Int)
Run Code Online (Sandbox Code Playgroud)

和BlogContriller:

object BlogController extends Controller {

  def allPosts(pageNumber:Int = 1, postsPerPage:Int = 10) = Action{
    val posts = Post.getLastNPosts(postsPerPage, postsPerPage*(pageNumber-1))
    val htmlPosts = new Html(new StringBuilder());

    for (post <- posts){
      val htmlPost = views.html.posting.post(post.getName, post.getText, post.getDate.toString)
      htmlPosts += htmlPost;
    }

    Ok(views.html.posting.index(htmlPosts))
  }
}
Run Code Online (Sandbox Code Playgroud)

当我试图加入时,我给出了一个错误:

Error:(14, -1) Play 2 Compiler:  C:\...\conf\routes:14: Compilation error[Using different overloaded methods is not allowed. If you are using a single method in combination with default parameters, …
Run Code Online (Sandbox Code Playgroud)

scala playframework playframework-2.2

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

如何在play框架和build.sbt中获取应用程序版本

我正在使用Scala的2.2版本,如何从build.sbt获取版本?

name := "project_name"
version := "0.2-SNAPSHOT"

play.Project.playScalaSettings
Run Code Online (Sandbox Code Playgroud)

或者我如何从另一个对象传递值?

scala sbt playframework-2.2

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

Playframework应用程序包括一个独立的主应用程序

我正在用Java中的Playframework 2.2编写一个webapp.现在我想添加一个小的独立文本到数据库导入工具,它只包含一个带有main方法的Java文件:

public static void main(String[] args) {
  importTextToDatabase();
} 
Run Code Online (Sandbox Code Playgroud)
  • 我可以将这个独立的迷你应用程序与其余的webapp一起包含在内吗?
  • 我怎样才能在activator(或sbt)(没有webapp)中运行它?
  • 或者为这个应用程序创建第二个项目更好吗?

java program-entry-point playframework playframework-2.2

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

sbt-proguard with play 2.2.3

我们开发了一个带有游戏2.2.3的Web应用程序,并希望对其进行模糊处理.我正在尝试使用sbt-proguard插件.我将下面的行放在PROJECT_FOLDER/project/plugins.sbt文件中

addSbtPlugin("com.typesafe.sbt" % "sbt-proguard" % "0.2.2")
Run Code Online (Sandbox Code Playgroud)

并将下面的行放在PROJECT_FOLDER/build.sbt文件中

proguardSettings

ProguardKeys.options in Proguard ++= Seq("-dontnote", "-dontwarn", "-ignorewarnings")

ProguardKeys.options in Proguard += ProguardOptions.keepMain("Application")

inConfig(Proguard)(javaOptions in ProguardKeys.proguard := Seq("-Xmx2g"))
Run Code Online (Sandbox Code Playgroud)

当我在播放控制台和插件网站上说dist时,我不确定proguard是否正常工作他们说调用proguard:proguard.当我在play console上编写proguard:proguard时,Play会给出错误,如下所示

[info] Reading program jar [/Users/kamil/DEVELOPMENT/play-2.2.3/repository/local/net.sf.ehcache/ehcache-core/2.6.6/jars/ehcache-core.jar] (filtered)
[info] Reading program jar [/Users/kamil/DEVELOPMENT/play-2.2.3/repository/cache/org.json/json/jars/json-20140107.jar] (filtered)
[info] Reading library jar [/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/jce.jar]
[info] Reading library jar [/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar]
[error] Error: The output jar is empty. Did you specify the proper '-keep' options?
[trace] Stack trace suppressed: run …
Run Code Online (Sandbox Code Playgroud)

proguard sbt playframework playframework-2.2

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

Play框架JSON读取:如何读取String或Int?

rest api的JS客户端可以将int和string作为某个字段的值发送.

{
   field1: "123",
   field2: "456"
}

{
   field1: 123,
   field2: 456
}
Run Code Online (Sandbox Code Playgroud)

以下是应该转换json请求正文的case类的play动作:

  case class Dto(field1: Int, field2: Int)
  object Dto {
    implicit val reads = Json.reads[Dto]
  } 

  def create = Action.async(BodyParsers.parse.json) { implicit request =>
    request.body.validate[Dto].map {
      dto => someService.doStuff(dto).map(result => Ok(Json.toJson(result)))
    }.recoverTotal {
      e => jsErrorToBadRequest(e)
    }
  }
Run Code Online (Sandbox Code Playgroud)

如果我发送带有int值的json值,它可以正常工作.但是如果field1或field2是字符串("123","456"),它就会失败,因为request.body.validate需要Int.

但问题是JS客户端从输入字段发送值,输入字段转换为字符串.

处理整数或字符串的最佳方法是什么?(所以这个动作应该在两种情况下都将json转换为dto)

json scala playframework playframework-2.2

7
推荐指数
2
解决办法
2022
查看次数

如何从外部文件夹或外部jar加载Evolutions脚本(数据库迁移脚本)?

我们正在使用Play 2.7(Java)进行制作.我们有一组常见的Ebean模型(作为外部库/ jar),它们在不同的Play项目之间共享,但我们因Play Evolutions脚本而陷入困境.有没有什么方法可以从外部文件夹/ jar加载这些脚本(.sql文件)?有没有人试过这个?

已经尝试在线搜索解决方案但没有用.需要有Play游戏经验的人的帮助.还请建议是否有其他方法来解决问题.感谢您的帮助!

目前,该项目正在从这里运行这些迁移脚本:

--> project
    --> app
    --> conf
        --> evolutions
            --> default <-- from here
Run Code Online (Sandbox Code Playgroud)

我想从这里的某个地方加载这些脚本:

--> project
    --> app
--> External Libraries
    --> group.artifact.version.jar
        --> models
            --> default <-- from here
Run Code Online (Sandbox Code Playgroud)

java playframework-evolutions playframework-2.2

7
推荐指数
0
解决办法
65
查看次数