1

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

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

No configuration setting found for key 'akka.version'

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

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

4

1 回答 1

0

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

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

解决方法:

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

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

提示

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

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

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

于 2013-02-06T07:25:17.433 回答