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

时间:2014-01-08 12:06:23

标签: scala playframework akka

我在Scala中编码P2P application,它与Play 2.2.1一起使用Akka 2.2.3。 当我调整我的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 run而言,conf/reference.conf完全按照我写的方式运作。

我的代码有什么问题吗? zip中的conf/reference.conf无效吗?

我想了解如何在开发人员conf/reference.conf之后由用户在dist中应用更改。我用Google搜索了这个问题,但我找不到任何答案。


我不是母语为英语的人,所以请原谅我的英语能力差。

1 个答案:

答案 0 :(得分:0)

您的代码看起来很好,Play在其生成的jar中包含配置文件的副本。

如果您使用

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

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