conf/reference.conf 在带有 Akka 2.2.3 的 Play 2.2.1 中的 dist zip 中不起作用



我正在Scala中编写P2P应用程序,该应用程序适用于带有Akka 2.2.3的Play 2.2.1。当我展开我的 Play 项目时,my project/conf/reference.conf将包含在 dist zip 中。这没关系。

接下来,我提取了 ZIP 并覆盖了conf/reference.conf,以测试用户环境的本地化。但是,我的应用程序无法使用 reference.conf 的配置;它仍然使用默认设置。(使用默认设置的 Akka 。

例如conf/reference.conf:

p2pakka.akka.remote.netty.tcp.hostname="foobar.local"
p2pakka.akka.remote.netty.tcp.port=44444

实际行为:

p2pakka.akka.remote.netty.tcp.hostname="127.0.0.1"
p2pakka.akka.remote.netty.tcp.port=22223

在我的代码中:

val config = ConfigFactory.load()
val customConf = config.getConfig("p2pakka").withFallback({
    println("fallbacking");
    config
})
val system = ActorSystem("foobar", ConfigFactory.load(customConf))
// still using default settings.

至于使用play runconf/reference.conf完全按照我写的一样工作。

我的代码有问题吗?压缩conf/reference.conf无效吗?

我想知道如何在开发人员dist后按用户conf/reference.conf应用更改。我用谷歌搜索了这个问题,但我找不到任何答案。


我的母语不是英语,所以请原谅我糟糕的英语水平。

你的代码看起来不错,Play 在它生成的 jar 中包含配置文件的副本。

如果您使用

-Dconfig.file=/path/to/prod.conf &

作为命令行参数(env的更新路径)启动时应该接受更改

最新更新