Scala 重头戏2.4控制台未按文件规定工作
我最近更新了play 2.4.1(damiya)版本,始终能够通过intellij和在我的终端窗口中输入Scala 重头戏2.4控制台未按文件规定工作,scala,intellij-idea,playframework,Scala,Intellij Idea,Playframework,我最近更新了play 2.4.1(damiya)版本,始终能够通过intellij和在我的终端窗口中输入activator console进入scala控制台。然后,我将通过输入以下代码行启动一个新的静态应用程序: newplay.core.StaticApplication(新的java.io.File(“.”) 正如在上记录的,以及对类似的旧问题的一些回答 但是,我无法在play 2.4.1上使用此功能,错误返回为: <console>:8: error: type Static
activator console
进入scala控制台。然后,我将通过输入以下代码行启动一个新的静态应用程序:
newplay.core.StaticApplication(新的java.io.File(“.”)
正如在上记录的,以及对类似的旧问题的一些回答
但是,我无法在play 2.4.1上使用此功能,错误返回为:
<console>:8: error: type StaticApplication is not a member of package play.core
new play.core.StaticApplication(new java.io.File("."))
^ `
:8:错误:类型StaticApplication不是包play.core的成员
新的play.core.StaticApplication(新的java.io.File(“.”)
^ `
如果您能提供有关如何解决此问题的任何建议,我们将不胜感激。在过去,控制台对我非常有用,并且对于调试非常重要。Richard在本文中解释:
将服务器启动代码重构为产品、开发和测试模式
这一变化使启动应用程序的生命周期大大缩短
更清楚
- Netty和Akka HTTP不再需要单独的ServerStart实现,因为ServerProvider配置始终从加载
配置文件。相反,根据模式分离代码 服务器在其中运行,因为模式之间的行为可能会有所不同。现在 我们有ProdServerStart、DevServerStart和DocServerStart - 对于每种模式,将ApplicationProvider代码移动到与新服务器启动代码相同的文件中。移动用于启动应用程序的代码
退出ApplicationProvider构造函数并进入服务器
开始代码。应用程序提供商仍然实现“get”方法
用于获取当前应用程序 - 删除TestApplication和StaticApplication,因为它们执行相同的操作。而是为“静态”应用程序提供帮助
不需要重新加载
play.core.server.ProdServerStart.main(Array())
不幸的是,bjfletcher的回答只为我指明了正确的方向——运行
ProdServerStart
实际上并没有给我一个运行环境(事实上,恰恰相反)--
这可能会被保存到
:脚本或其他东西中。我在这里使用play yeoman,它增加了对angular框架的支持,但是找不到与yeoman相关的路由。
scala> play.core.server.ProdServerStart.main(Array.empty)
Oops, cannot start the server.
Configuration error: Configuration error[application: application.conf: java.io.IOException: resource not found on classpath: application.conf, application.json: java.io.IOException: resource not found on classpath: application.json, application.properties: java.io
.IOException: resource not found on classpath: application.properties]
at play.api.Configuration$.configError(Configuration.scala:178)
at play.api.Configuration$.load(Configuration.scala:103)
at play.api.Configuration$.load(Configuration.scala:133)
at play.api.ApplicationLoader$.createContext(ApplicationLoader.scala:91)
at play.core.server.ProdServerStart$.start(ProdServerStart.scala:50)
at play.core.server.ProdServerStart$.main(ProdServerStart.scala:27)
at $line21.$read$$iw$$iw$.<init>(<console>:8)
at $line21.$read$$iw$$iw$.<clinit>(<console>)
at $line21.$eval$.$print$lzycompute(<console>:7)
at $line21.$eval$.$print(<console>:6)
at $line21.$eval.$print(<console>)
...
import play.api._
val env = Environment(new java.io.File("."), this.getClass.getClassLoader, Mode.Dev)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
val app = loader.load(context)
Play.start(app)
import Play.current