问题标签 [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.

0 投票
1 回答
487 浏览

scala - 如何使用 Scala 登录 Play Framework?

我已将 Play Framework 更新至 2.7,并收到以下警告:

所以我的问题是:

  • 我应该创建一个 Logger 实例并在我想使用它时将它传递给每个组件吗?

PS:

在不基于 Play Framework 的项目中,我曾经使用scala-logging,它是 SLF4J 的包装器。这可以是一个解决方案吗?

0 投票
1 回答
622 浏览

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 获取注入设置到应用程序?

0 投票
6 回答
5659 浏览

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,等等)我们不再看到连接问题。

0 投票
0 回答
43 浏览

scala - 案例类(作为枚举)和 Json.reads

我有运营商,它们都有一个名称和价格,我希望在上面进行模式匹配,所以我将它们写为案例类:

但现在我需要“jsonify”它们。我必须为每个运营商编写一个格式化程序吗?或者有没有办法在Carrier课堂上编写一个独特的格式化程序?

我试过了:

但它没有编译,它说:

0 投票
1 回答
2560 浏览

java - Java Play 框架 - NoClassDefFoundError:播放/配置

我刚刚开始使用 Java Play 框架并向前迈出了一些步骤,但现在我打算添加 JavaEbean OEM,我浏览了文档但仍然收到错误NoClassDefFoundError: play/Configuration

应用程序.conf

插件.sbt

我的模型:

构建.sbt

我从 sbt 开始,做了更新一切都很好,但是如果我编译,我得到以下错误:

如果我运行 sbt run 我得到与上面相同的错误,加上:

0 投票
1 回答
989 浏览

scala - 未解决的依赖关系:sbt-plugin;2.7.0 尝试编译播放模板项目时

按照 Play 网站“sbt new playframework/play-scala-seed.g8”的指导创建了一个新的播放模板项目

尝试编译/运行项目我得到以下信息:

我的 Scala 版本是 2.12.4,我确实安装了 sbt 1.0,所以对为什么会发生这种情况有点困惑。有什么想法吗?

0 投票
1 回答
1093 浏览

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 模板并对其进行编辑,所以这也可能是一个问题。

0 投票
0 回答
142 浏览

playframework - 如何从文件系统提供静态资产而不是默认资产 JAR 包(Play 框架)

Play Framework将静态资源捆绑到一个 JAR 包中,该包在运行时用于解析(通过类路径查找)请求的资源。相反,我想指定一个文件系统位置,应该从中提供这些静态资产。我找到了一个 hacky 方法来做到这一点(见下文),但似乎应该有一种更简单/更好的方法来做到这一点(尽管文档没有提到它)。

我知道我可以创建一个简单的控制器并“手动”为资产提供服务,但这并没有利用标准Assets机制提供的内置缓存和版本控制功能。

(我的额外要求是我希望拥有一些私有资产,即要求身份验证/授权才能访问它们)

所以这是我目前的hacky解决方案:

然后,在conf/application.conf一个可以定义:

然后在conf/routes控制器中可以使用如下:

有一个更好的方法吗?(我正在使用 Play 2.7)

0 投票
1 回答
969 浏览

java - Play Framework 2.7 授权获取用户

我正在尝试向我在 Play 2.7 中构建的 Rest API 添加授权。我在这里找到了旧版本的一个很好的例子,但我无法访问 Http 上下文,所以我无法将用户添加为 arg。

在 Play 2.7 中是否有另一种方法可以在不访问上下文的情况下执行此操作?

我希望能够从其他控制器中获取用户,就像他们在 Todo 控制器中所做的那样。

编辑:我的问题归结为您在 Play 2.7 中将经过身份验证的用户存储在哪里,因为 Http.Context 已被弃用?

0 投票
1 回答
363 浏览

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 但它没有帮助。

我将非常感谢任何帮助。