【问题标题】:Play 2.0 / Scala: loading of module reference configuration broken?Play 2.0 / Scala:加载模块参考配置损坏?
【发布时间】:2013-02-06 15:25:17
【问题描述】:

我已经开始将一些功能提取到单独的 Play 模块中,以及一些默认配置,我将这些默认配置放入模块中的文件 conf/reference.conf 中,如Typesafe's Config library 所述。这个配置很好,例如通过在模块上下文中运行的功能测试。

但是,一旦我尝试根据所述模块启动应用程序,我似乎遇到了一些类加载器问题,例如我从 Akka 子系统收到了一些奇怪的抱怨:

No configuration setting found for key 'akka.version'

一旦我从我的模块中删除文件reference.conf(没有其他更改),这个异常就会消失,但显然应用程序将不再工作。目前,模块配置在文件conf/module-reference.conf 中,我在主应用程序的配置中include。这行得通,但我想摆脱include

我怀疑我的reference.conf 以某种方式掩盖了 Akka 提供的那个。以前有人遇到过这个问题吗?解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: scala playframework-2.0 sbt


    【解决方案1】:

    看起来我是一些奇怪的文件系统不一致的受害者:

    • 我正在使用 play publish-locally 将模块部署到 Play 的本地存储库
    • 这个存储库位于 Eclipse 的构建路径上(使用 play eclipsify 创建)
    • 有时,Play 主应用程序似乎会在模块的 JAR 以某种方式损坏时拾取它

    解决方法:

    • 关闭 Eclipse
    • 在本地部署模块
    • 运行主应用程序的干净构建

    使用此过程,应用程序的配置工作正常。

    提示

    在研究这个问题时,我发现了 Typesafe 的 Config 库的一个有用功能。您可以使用以下代码行获取整个配置树,包括每个条目的来源:

    val configDump: String = current.configuration().underlying.root().render()
    

    例如将其转储到文件中以供进一步分析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      • 2017-12-20
      • 2016-02-05
      • 1970-01-01
      • 2018-04-23
      相关资源
      最近更新 更多