问题标签 [playframework-2.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1438 浏览

json - 播放 2.1-RC2:从 JSON 中读取密钥

我尝试将我的 Web 应用程序从 Play 2.0.4 迁移到 Play 2.1-RC2。

我有一个带有未知键列表的 JSON 数据(key1, key2),如下所示:

我想将 JSON 中的数据存储在元标记列表中。在 Play 2.0.4 中,我使用了类似的东西来读取tags-list:

现在我想使用新的 Play 2.1-JSON-API(原型):

如何从 JSON 中读取密钥?

0 投票
1 回答
1908 浏览

json - 如何在 Play Framework 2.1-RC2 中使用新的 JSON API 读写 Anorm 对象?

我正在尝试将我的 Play 2.0.x 应用程序迁移到 Play 2.1-RC2 并偶然发现了以下问题。在我的应用程序中,我有一个看起来像这样的案例类:

在我的 Play 2.0.x 代码中,我有一个PlayerFormat对象用于读取和写入此类的 JSON 实例,如下所示:

问题是“我如何在 Play 2.1 中读取可选(可为空)属性“id”并根据它的存在将playerId属性设置为Id[Long]or NotAssigned

另外,这可以以某种方式重写以使用 JSON 初始宏吗?

0 投票
2 回答
599 浏览

scala - 使用 FakeApplication 的测试意外冻结 Play 2.1-RC2

我有一个像这样的简单测试:

测试总是在测试快结束时冻结:

所以我退出测试Ctrl+C...

有什么想法吗?


JVM 1.7.0_11
Scala 2.10.0
播放 2.1-RC2
Mac OSX 10.8.2

0 投票
4 回答
2120 浏览

neo4j - 使用 Logback.xml 播放 2.1 和 Neo4J WrappingNeoServer 错误

我有一个嵌入式 neo4j 服务器,带有在 Play 2.0.1 应用程序中工作的管理控制台。我最近升级到与 DeadBolt 兼容的候选版本,发现应用程序不再运行。

要启动服务器,我正在执行以下操作:

不幸的是,我得到:

我尝试从添加了 neo4j-server 的 Build.scala 中删除 slf4j 和 logback 依赖项,但无济于事。似乎 Neo4j 正在加载错误的 logback.xml。此外,如果我将 notTransitive() 添加到 neo4j-server 依赖项中,启动时的 logback.xml 警告就会消失。我想 Neo4j 特定的 logback.xml 嵌入在 jar 中并导致了问题。我看到的一种潜在解决方案是通过代码编写自定义配置,但我不确定如何执行此操作。有什么想法吗?作为参考,我在启动时收到这些错误:

有关完整的例外情况,请参见下文:

EDIT1 更多细节

我从 play_2.10.jar 中删除了 logback.xml 文件,并且在播放应用程序启动时不再从 logback 中收到重复警告。

然后,我尝试将 neo4j logback.xmlplay2.1 logback.xml 的内容作为 custom-logback.xml 放置在我的 play 项目的根目录中。与 Play.application().path() 相同的路径 也许这是 neo4j 拾取它的错误位置?

在查看依赖项时,我有一个 neo4j-server 需要的 janino。此外,我没有看到用于记录的 jar 中的任何冲突,但也许我遗漏了一些东西。这是我的“播放依赖项”的依赖层次结构:

https://gist.github.com/4559389

我还尝试将 Play2.1 wiki 上列出的默认配置复制到 custom-logback.xml 中,但没有成功:

编辑 2

绝对似乎是 logback 依赖项的问题。Neo4j 依赖于 0.9.30,play 似乎依赖于 1.0.7。我猜当库被 ?janino? 加载时,这些版本之间存在 api 变化。它找不到合适的方法。仍然不确定如何在 logback.xml 中正确指定以在运行时选择正确的依赖项。 Play2.1RC1 Logback 依赖 Neo4j Logback 依赖

图表由 yed + sbt-dependency-graph 生成。

0 投票
3 回答
1742 浏览

java - Play Framework 2.1-RC2:在模板中通过反向路由创建 NoSuchFieldError

我正在开发一个使用 MongoDB 作为数据存储的 Java Play 2.1-RC2 应用程序。我正在使用 Jongo 模块来处理 MongoDB。一切都很顺利,直到我遇到这些错误:

java.lang.NoSuchFieldError: 主页

这些错误源自我的模板,是由使用反向路由引起的。在这种特殊情况下,我试图访问我的 Home 控制器。

反向路由如下所示:@routes.Home.edit(document.url)

路线本身是这样的: GET /homepage/:url/edit controllers.Home.edit(url)

这以前有效,但自从我开始研究 MongoDB 实现以来就开始出现这些错误。我想不通这两者之间有什么联系。我认为我不会以任何方式干扰路由。这个项目从 2.0.4 项目开始。迁移到 2.1-RC1 很顺利,而且 2.1-RC2 似乎也能正常工作,直到现在。我创建了自己的 Model 便利类来处理 Mongo 模型。那里有什么东西会导致这种行为吗?

我的插件.sbt:

我的 build.properties:

我的 Build.scala:

唯一可能相关的 application.conf 行:

和堆栈跟踪:

如果有人能告诉我这些错误可能来自哪里或指出我正确的方向,我将不胜感激!如果您需要更多信息,请告诉我!

0 投票
1 回答
6086 浏览

java - Play Framework 2.1:在 Build.scala 中使用 play.api.Configuration

Play Framework 2: Read the application version defined in Build.scala的最佳答案中,建议在 .scala 中指定conf/application.conf并加载应用程序版本Build.scalaplay.api.Configuration。我在Play 2.1-RC2构建时使用并收到以下错误消息:

我认为这可能是由于 Play 2.1 的构建依赖项必须指定为 SBT 的插件,而play.api.Configuration不是 Play 的 SBT 插件的一部分。我猜我必须将 Play 的核心库包含在 中project/plugins.sbt,但我无法弄清楚如何。有任何想法吗?

(注意:如果我有足够的代表点,会在原始问题中发表评论)

0 投票
1 回答
806 浏览

migration - 从 playframework 2.0 迁移到 2.1 RC2 (java) 后使用 Forms

我已经更新了我的控制器以使用 play.data.Form.form() 方法而不是 Controller.form()。当我尝试运行我的应用程序时,我收到如下错误:

错误:类 create_user 中的方法渲染不能应用于给定类型;

必需:字符串,play.api.data.Form,用户找到:字符串,play.data.Form,用户

看起来我的模板希望获得 play.api.data.Form 而不是 play.data.Form。是否有任何隐式转换,或者我应该更新我的模板以使用 play.data.Form?

如果我在我的模板中使用 play.data.Form 我错过了 play.api.data.Form 的一些功能,比如通过 apply 方法请求参数的能力(例如:createUserForm("username") )

0 投票
1 回答
16575 浏览

json - Play Framework 2.1 中的 Scala 到 JSON

我正在尝试在 2.1RC Play Framework 中将 Scala 转换为 JSON。

我可以执行以下操作并获取 JSON:

因为 a1 只是 Map[String,String] 可以正常工作。

但是如果我有一些更复杂的东西,比如我有 Map[String,Object],那是行不通的:

我发现我可以执行以下操作:

那行得通。

但是我怎么能以一般的方式做到这一点?我认为我可以执行以下操作:

但我仍然收到无法反序列化的错误


附加信息:

Json.toJson 可以将 Map[String, String] 转换为 JsValue:

但是,它无法尝试转换 Map[String, Object]:

使用此 Play Framework 页面中关于将 Scala 转换为 Json 的“提示”,我发现以下内容(http://www.playframework.org/documentation/2.0.1/ScalaJson):

如果不是 Map[String, Object],而是 Map[String, JsValue],那么 Json.toJson() 将起作用:

所以,我想要的是,给定一个 Map[String, Object],我知道 Object 值最初都是 String 或 List[String] 类型,如何将函数 Json.toJson() 应用于所有映射中的值并获取 Map[String, JsValue]。

我还发现我可以过滤掉那些纯粹是字符串的值和那些(曾经)是 List[String] 类型的值:

List[String] 过滤会给出警告,但似乎给出了我想要的答案。如果可以应用这两个过滤器,然后将 Json.toJson() 用于结果的值,并将结果组合起来,也许这会起作用?

但是过滤后的结果仍然是 Map[String, Object] 类型,这会导致问题:

0 投票
2 回答
398 浏览

java - 玩!2.1-RC2 JavaForms validate() 没有静态引用

我一直在玩游戏!2.1 示例按照 ZenTasks 示例设置基本登录系统。我卡住的地方是 JavaForms 部分。我想使用通过 Guice DI 提供的身份验证服务的实例来验证登录请求。

我正在关注Play20 Sampleauthenticate()此示例在表单提交后请求表单验证时使用静态方法运行身份验证。关于如何在非静态范围内执行此验证步骤的任何想法?

注意:我看过Play!验证插件以及 SecureSocial 插件,但是这些项目对于我现在想做的事情来说太过分了。此外,我对允许在 JavaForms 中进行非静态验证的通用解决方案感兴趣。

编辑: 我在这里要求的内容似乎有些混乱。我希望找到的是另一种方法来执行由 Play 发送的表单提交的验证步骤!框架 Form.form() 生成的表单。目前,它要求在不是通过 DI 框架创建的 POJO 实例上调用 validate() 方法。这导致访问授权服务等需要静态引用...

编辑 2: 我正在使用的当前解决方案是:

这是一个不错的解决方法,但它仍然依赖于静态注入:(

0 投票
1 回答
1325 浏览

scala - Set Content type of FakeRequest (PlayFramework 2.1 - RC2)

I want to set content-type of Fake Request (Play 2.1-RC2). Following code doesn't work (an action receives application/octet-stream instead of application/pdf)