标签: playframework-2.4

Play 2.4:Form:找不到参数消息的隐含值:play.api.i18n.Messages

我是Play框架的新手并尝试在我的本地机器中模仿helloworld示例,但是我遇到了一个错误:

在此输入图像描述

路线:

# Home page
GET        /                    controllers.Application.index

# Hello action
GET        /hello               controllers.Application.sayHello


# Map static resources from the /public folder to the /assets URL path
GET        /assets/*file        controllers.Assets.versioned(path="/public", file: Asset)
Run Code Online (Sandbox Code Playgroud)

控制器:

package controllers

import play.api.mvc._
import play.api.data._
import play.api.data.Forms._

import views._

class Application extends Controller {

  val helloForm = Form(
    tuple(
      "name" -> nonEmptyText,
      "repeat" -> number(min = 1, max = 100),
      "color" -> optional(text)
    )
  )

  def index = Action {
    Ok(html.index(helloForm))
  }

  def sayHello …
Run Code Online (Sandbox Code Playgroud)

forms scala playframework playframework-2.4

44
推荐指数
2
解决办法
2万
查看次数

Play Framework @ routes.Assets.at编译错误

我正在使用Play 2.4.0并且我一直在尝试按照主页中的教程:https: //playframework.com/,这是针对Play 2.3以及解决了有关Ebean ORM更改的几个问题之后版本2.3到2.4,我遇到以下错误:

Compilation error

value at is not a member of controllers.ReverseAssets
Run Code Online (Sandbox Code Playgroud)

我的index.scala.html:

@(message: String)

@main("Welcome to Play") {

    <script type='text/javascript' src="@routes.Assets.at("javascripts/index.js")"></script>

    <form action="@routes.Application.addPerson()" method="post">
        <input type="text" name="name" />
        <button>Add Person</button>
    </form>

    <ul id="persons">
    </ul>
}
Run Code Online (Sandbox Code Playgroud)

我的routes档案:

# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET         /                    controllers.Application.index()

POST        /person              controllers.Application.addPerson()

GET         /persons             controllers.Application.getPersons()

# Map static resources from the /public …
Run Code Online (Sandbox Code Playgroud)

java playframework java-8 playframework-2.4

36
推荐指数
1
解决办法
2万
查看次数

如何使用Play Framework 2.4将相对于项目根的路径用于H2 db-file配置?

我们正在开发一个Play 2.4应用程序(Java API).

出于开发目的,我们希望使用具有相对于项目根目录的DB文件路径的持久H2数据库.

如何在Play Framework中使用持久性H2数据库而不是内存中有Play 2.0的解决方案:

db.default.url="jdbc:h2:file:data/db"
Run Code Online (Sandbox Code Playgroud)

但是,使用Play 2.4这似乎不起作用,但我收到错误消息,底部有以下异常:

Caused by: org.h2.jdbc.JdbcSQLException: A file path that is implicitly 
relative to the current working directory is not allowed in the database
URL "jdbc:h2:file:data/db". Use an absolute path, ~/name, ./name, or the 
baseDir setting instead. [90011-187]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
    at org.h2.message.DbException.get(DbException.java:179)
    ...
Run Code Online (Sandbox Code Playgroud)

我可以使用绝对路径和相对于主目录的路径来连接工作,如下所示:

db.default.url="jdbc:h2:file:/Users/foo/data/db"
Run Code Online (Sandbox Code Playgroud)

要么

db.default.url="jdbc:h2:~/data/db"
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法引用项目根文件夹?

jdbc relative-path h2 persistent playframework-2.4

32
推荐指数
2
解决办法
2万
查看次数

Play Framework 2.4写[-A] vs OWrites [-A],格式[A] vs OFormat [A].目的?

PlayFramework Json库中Writes [-A]和OWrites [-A]之间有什么区别?我使用过Writes [A],但我无法弄清楚OWrites的目的是什么.同样的问题适用于格式[A]与OFormat [A].

源代码可以在这里找到Writes,这里可以找到Formats.我看过他们,但我无法弄清楚他们的用法有何不同.

json scala playframework-2.4

21
推荐指数
1
解决办法
3527
查看次数

使用Play Framework的缓存API在多语言网站中缓存操作

为了在给定的秒数内缓存每个标签和语言的操作,我编写了以下帮助器方法(其中label,是我给我的操作赋予的名称):

def cacheResponseFor(label: String, duration: Int)(action: EssentialAction) = { 
   Cached({r: RequestHeader => (label + getLanguage(r))}, duration){ action }
}

def getLanguage(request: RequestHeader): String = {
   request.cookies
     .get(helpers.SessionHelpers.LANGUAGE_SESSION)
        .map(_.value)
          .getOrElse(helpers.LanguageHelpers.FRENCH)
}
Run Code Online (Sandbox Code Playgroud)

但是我遇到了一些奇怪的事情,当我尝试缓存一个Action60秒并在此期间将语言切换为法语时,我会继续使用法语版本60秒然后切换到英语.

在调查之后,我发现getLanguage 在每次调用该操作时都不会调用该方法,就好像Key仅在缓存期结束后才进行评估.

这是不对的,我希望cacheResponseFor每当我请求我的页面时调用它,语言得到评估使用getLanguage,我得到正确的缓存版本,即我最终应该有2个缓存操作(每种语言一个).

我错过了什么吗?

scala playframework playframework-2.3 playframework-2.4

20
推荐指数
1
解决办法
554
查看次数

PlayFramework 2.4.6错误413请求实体太大

我正在使用PlayFramework 2.4.6,尝试上传多部分文件(大小为18M),服务器返回以下错误:

For request 'POST /api/myEndpoint' [Request Entity Too Large]
Run Code Online (Sandbox Code Playgroud)

我环顾四周,尝试了下面的成功:

  1. play.http.parser.maxMemoryBuffer = 2000000K
  2. parsers.MultipartFormData.maxLength = 1024000K
  3. play.http.parser.maxDiskBuffer = 2000000K
  4. Action.async(parse.anyContent(有些(1024*200L)))

而且他们都没有解决问题.

这是Stacktrace:

14:57:33.128 [New I/O worker #2] [error] -     p.c.server.netty.RequestBodyHandler - Exception caught in RequestBodyHandler
java.nio.channels.ClosedChannelException: null
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.setInterestOps(AbstractNioWorker.java:506) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker$1.run(AbstractNioWorker.java:455) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.ChannelRunnableWrapper.run(ChannelRunnableWrapper.java:40) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.processTaskQueue(AbstractNioSelector.java:391) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:315) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.10.4.Final.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.10.4.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_65]
Run Code Online (Sandbox Code Playgroud)

multipartform-data netty playframework playframework-2.4

17
推荐指数
3
解决办法
7895
查看次数

Play Framework 2.4和IntelliJ Idea

我试图在IntelliJ中打开一个2.4项目,但由于事情发生了变化,我不知道该怎么做.

在以前的版本中,我可以运行

activator idea
Run Code Online (Sandbox Code Playgroud)

或者使用激活器UI并单击生成intelliJ项目,但在2.4中,idea命令似乎不存在

[error] Not a valid command: idea (similar: eval, alias)
[error] Not a valid project ID: idea
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: idea (similar: clean)
[error] idea
[error]     ^
Run Code Online (Sandbox Code Playgroud)

UI似乎坏了,当我点击生成intelliJ项目时,它试图编译应用程序并给出这个错误:

play/Play$
java.lang.NoClassDefFoundError: play/Play$
Use 'last' for the full log.
Failed to load project.
Run Code Online (Sandbox Code Playgroud)

我使用play java模板从头开始创建项目:

activator new
Run Code Online (Sandbox Code Playgroud)

我也尝试将该文件夹导入为项目,但是intelliJ似乎并未将其标识为项目

intellij-idea playframework typesafe-activator playframework-2.4

15
推荐指数
3
解决办法
1万
查看次数

播放2.4 - 在日志中显示Ebeans SQL语句

如何在日志中显示SQL语句?我正在使用EBeans,但由于某些原因它无法插入,但我看不出有什么问题.

我尝试将配置编辑为:

db.default.logStatements=true
Run Code Online (Sandbox Code Playgroud)

并将其添加到logback.xml

<logger name="com.jolbox" level="DEBUG" />
Run Code Online (Sandbox Code Playgroud)

按照我在网上找到的一些答案,但它似乎不适用于2.4 ......

sql logging playframework ebean playframework-2.4

15
推荐指数
3
解决办法
5747
查看次数

如何在Play中启动时运行代码!框架2.4

我试图在应用程序启动时打印"Hello"到控制台.你能解释一下怎么做吗?

我自己尝试了什么:

app/modules/HelloModule.scala:

package modules

import com.google.inject.AbstractModule

trait Hello {}

class MyHelloClass extends Hello {
  initialize() // running initialization in constructor
  def initialize() = {
    println("Hello")
  }
}

class HelloModule extends AbstractModule {
  def configure() = {
    bind(classOf[Hello])
      .to(classOf[MyHelloClass]).asEagerSingleton
  }
}
Run Code Online (Sandbox Code Playgroud)

conf/application.conf我补充说:

play.modules.enabled += "modules.HelloModule"
Run Code Online (Sandbox Code Playgroud)

我跑的时候不会打印"你好" activator run

scala playframework playframework-2.4

14
推荐指数
1
解决办法
6319
查看次数

Play 2.4 - 如何在代码更改后避免重新创建数据库池连接?

有没有办法避免在代码更改后重新加载时重新连接到内存数据库的连接池?

[info] - application - Shutting down connection pool.
[info] - application - Creating Pool for datasource 'default'
[info] - play.api.db.DefaultDBApi - Database [default] connected at jdbc:h2:mem:play
Run Code Online (Sandbox Code Playgroud)

即使您修改了与数据库无关的内容,Play也会关闭连接池并立即重新创建它.必须有充分的理由,如果没有,还有一个解决方法.

任何帮助赞赏.

playframework playframework-2.0 playframework-2.4

13
推荐指数
1
解决办法
1264
查看次数