【问题标题】:Typesafe Activator java.lang.ClassNotFoundException when explicitly setting Global object in config.fileTypesafe Activator java.lang.ClassNotFoundException 在 config.file 中显式设置全局对象时
【发布时间】:2013-11-12 10:25:44
【问题描述】:

在 Scala Play2 应用程序中,我想为不同的环境定义单独的设置。 我的方法是使用不同的 .conf 文件并以 -Dconfig.file=... 开头。

调用时一切正常

play -Dconfig.file=conf/application.conf

play -Dconfig.file=conf/test.conf

但是打电话的时候

activator -Dconfig.file=conf/application.conf ui

我得到一个

java.lang.ClassNotFoundException: Global$

假设 -Dconfig.file 对 Activator 的工作方式相同,我错了吗? 使用 Activator 获得我想要的东西的正确方法是什么?

application.conf:

...

application.global=Global

...

test.conf:

...

application.global=GlobalForTest

...

Global.scala:

object Global extends GlobalSettings {

  override def onStart(app: Application) {
    Logger.info("Application has started")
    AppContext.databaseDetails = "default database details"
  }

}

GlobalForTest.scala:

object GlobalForTest extends GlobalSettings {

  override def onStart(app: Application) {
    Logger.info("Application has started in test mode")
    AppContext.databaseDetails = "test database details"
  }

}

【问题讨论】:

    标签: playframework config global classnotfoundexception typesafe-activator


    【解决方案1】:

    你能在激活器上打开一个错误吗?看起来 config.file 没有被传递给我们的分叉 sbt 进程。我们需要为您提供一些机制来控制将哪些 sys 变量传递给分叉的 sbt,或者以某种方式添加/控制它们。目前,这是一个 UI 限制。

    但是,./activator test./activator run 应该以与 play 相同的方式运行。

    【讨论】:

      猜你喜欢
      • 2014-03-03
      • 2015-10-10
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多