问题标签 [play-framework-2.7]
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.
scala - 如何使用 Scala 登录 Play Framework?
我已将 Play Framework 更新至 2.7,并收到以下警告:
所以我的问题是:
- 我应该创建一个 Logger 实例并在我想使用它时将它传递给每个组件吗?
PS:
在不基于 Play Framework 的项目中,我曾经使用scala-logging,它是 SLF4J 的包装器。这可以是一个解决方案吗?
java - Play Framework 2.7.0 Config 用于没有来自 application.conf 的常规配置的测试
在 Play 中application.conf
,我有一些应用程序的配置。例如:
在从 2.6.20 到 2.7.0 的 Play 迁移期间,我发现我的测试不起作用,因为 pew.server-script 不在配置中。这是一个示例测试:
调用 GuiceApplicationBuilder.build() 时模块初始化失败:
配置服务看起来像这样:
除了这个例外:
Akka 在使用 config 和 JPA 的设置创建路由器时也会崩溃 - 必要的设置未包含在 Config 中。我已经检查过 IntelliJ IDEA 调试 - 从 Config 实例中的“pew”只有 pew.scriptFolder = “example”,它已在附加配置(prepareApplication()
函数)中设置。
我也试过这个:
但是会导致Config、ApplicationLifecycle、Environment、Configuration注入的崩溃。如何从 application.conf 获取注入设置到应用程序?
scala - MongoError 没有可用的主节点
我们最近升级到 Play 2.7.0 并使用 play2-reactivemongo 版本 0.16.2 和 reactivemongo 0.16.3。我们使用reactivemongo-shaded-native
但也尝试不使用。
我们正在连接到具有 3 个节点的副本集,即 MongoDB Atlas 上的 MongoDB 3.6.10。
初始连接很好,服务运行了一段时间。
但最后我们遇到了这个错误:
和这个:
应用程序似乎无法(完全)恢复——20 个请求中有 1 个成功。
有大量“没有请求渠道”消息:
这似乎与对 Play HTTP 服务器的大量并发请求有关,这可能会使主节点的所有可用通道饱和,从而导致主节点状态的任何刷新失败。
显然,当连接到只有一个节点的本地副本集时,我们没有这个问题。
问题是,我该如何解决这个问题?
任何人都可以理解提供的日志消息吗?
我的分析是否正确,即。ReactiveMongo 是否会因为通道只是“忙”而无法查询主要状态?
更新:我们从 ReactiveMongo(在过去 4 年中为我们服务得很好)切换到了官方的 mongo-scala-driver——这真的很痛苦,现在仍然是(主要是因为“Registry”-no-compile-time -type-safety 概念传递Class[T]
s,等等)但我们不再看到连接问题。
scala - 案例类(作为枚举)和 Json.reads
我有运营商,它们都有一个名称和价格,我希望在上面进行模式匹配,所以我将它们写为案例类:
但现在我需要“jsonify”它们。我必须为每个运营商编写一个格式化程序吗?或者有没有办法在Carrier
课堂上编写一个独特的格式化程序?
我试过了:
但它没有编译,它说:
java - Java Play 框架 - NoClassDefFoundError:播放/配置
我刚刚开始使用 Java Play 框架并向前迈出了一些步骤,但现在我打算添加 JavaEbean OEM,我浏览了文档但仍然收到错误NoClassDefFoundError: play/Configuration
应用程序.conf
插件.sbt
我的模型:
构建.sbt
我从 sbt 开始,做了更新一切都很好,但是如果我编译,我得到以下错误:
如果我运行 sbt run 我得到与上面相同的错误,加上:
scala - 未解决的依赖关系:sbt-plugin;2.7.0 尝试编译播放模板项目时
按照 Play 网站“sbt new playframework/play-scala-seed.g8”的指导创建了一个新的播放模板项目
尝试编译/运行项目我得到以下信息:
我的 Scala 版本是 2.12.4,我确实安装了 sbt 1.0,所以对为什么会发生这种情况有点困惑。有什么想法吗?
java - 包 io.ebean 不存在 Play Framework 2.7
因此,我正在尝试按照 Radix Code 的教程使用 mySQL 和 Play Framework 2.7x 版创建数据库。我阅读了Play Framework Tutorial #21|这一集。启用 Ebean ORM 和 JDBC 支持,我们实现 Ebean 以将其连接到 wamp 和 MySql。我知道他在视频中使用的版本已经过时,并且我使用了更新的软件包,并且还与其他人的代码进行了比较,包括 Radix'own,但仍然有错误
[错误] C:\Users\Documents\GitHub\play-java-hello-world-tutorial\app\models\Escuela.java:4:1: 包 io.ebean 不存在 [错误] 导入 io.ebean.* ;
这是我的插件的摘要
这是我的 build.sbt 的片段
scalaVersion := "2.12.8"
我也试过没有"org.avaje" % "ebean" % "2.7.3",
and
对于我的 application.conf 我有以下内容:
我有两个模型,我怀疑这可能是问题所在。我还在学习 Sql,所以我想创建 2 个表,但它们用一个外键连接(这是另一个表的主键)。否则它们的功能相同。当然,我仍在使用哈希集而不是实际的数据库表。我一次只编辑一个模型,所以这个错误只出现在一个模型上。在模型类中,我有以下内容:
我没有将模型库扩展到我的班级,所以它只是:
*附加信息:即使我有 Eclipse,我正在通过 Visual Studio 代码编辑所有内容。我也在使用 hello world 模板并对其进行编辑,所以这也可能是一个问题。
playframework - 如何从文件系统提供静态资产而不是默认资产 JAR 包(Play 框架)
Play Framework将静态资源捆绑到一个 JAR 包中,该包在运行时用于解析(通过类路径查找)请求的资源。相反,我想指定一个文件系统位置,应该从中提供这些静态资产。我找到了一个 hacky 方法来做到这一点(见下文),但似乎应该有一种更简单/更好的方法来做到这一点(尽管文档没有提到它)。
我知道我可以创建一个简单的控制器并“手动”为资产提供服务,但这并没有利用标准Assets
机制提供的内置缓存和版本控制功能。
(我的额外要求是我希望拥有一些私有资产,即要求身份验证/授权才能访问它们)
所以这是我目前的hacky解决方案:
然后,在conf/application.conf
一个可以定义:
然后在conf/routes
控制器中可以使用如下:
有一个更好的方法吗?(我正在使用 Play 2.7)
scala - 播放框架错误:类型不匹配 - 发现 scala.concurrent.Future[play.api.mvc.Result] required: play.api.mvc.Result
我在 play-scala 项目的控制器中有以下代码。
编译时出现以下错误:
我已经阅读了类似问题的答案: Playframework: Type mismatch found scala.concurrent.Future[play.api.mvc.Result] required: play.api.mvc.Result 但它没有帮助。
我将非常感谢任何帮助。