问题标签 [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.
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 中读取密钥?
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 初始宏吗?
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
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.xml和play2.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 中正确指定以在运行时选择正确的依赖项。
图表由 yed + sbt-dependency-graph 生成。
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 行:
和堆栈跟踪:
如果有人能告诉我这些错误可能来自哪里或指出我正确的方向,我将不胜感激!如果您需要更多信息,请告诉我!
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.scala
号play.api.Configuration
。我在Play 2.1-RC2
构建时使用并收到以下错误消息:
我认为这可能是由于 Play 2.1 的构建依赖项必须指定为 SBT 的插件,而play.api.Configuration
不是 Play 的 SBT 插件的一部分。我猜我必须将 Play 的核心库包含在 中project/plugins.sbt
,但我无法弄清楚如何。有任何想法吗?
(注意:如果我有足够的代表点,会在原始问题中发表评论)
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") )
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] 类型,这会导致问题:
java - 玩!2.1-RC2 JavaForms validate() 没有静态引用
我一直在玩游戏!2.1 示例按照 ZenTasks 示例设置基本登录系统。我卡住的地方是 JavaForms 部分。我想使用通过 Guice DI 提供的身份验证服务的实例来验证登录请求。
我正在关注Play20 Sample。authenticate()
此示例在表单提交后请求表单验证时使用静态方法运行身份验证。关于如何在非静态范围内执行此验证步骤的任何想法?
注意:我看过Play!验证插件以及 SecureSocial 插件,但是这些项目对于我现在想做的事情来说太过分了。此外,我对允许在 JavaForms 中进行非静态验证的通用解决方案感兴趣。
编辑: 我在这里要求的内容似乎有些混乱。我希望找到的是另一种方法来执行由 Play 发送的表单提交的验证步骤!框架 Form.form() 生成的表单。目前,它要求在不是通过 DI 框架创建的 POJO 实例上调用 validate() 方法。这导致访问授权服务等需要静态引用...
编辑 2: 我正在使用的当前解决方案是:
这是一个不错的解决方法,但它仍然依赖于静态注入:(
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)