我在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搜索了这个问题,但我找不到任何答案。
我不是母语为英语的人,所以请原谅我的英语能力差。
答案 0 :(得分:0)
您的代码看起来很好,Play在其生成的jar中包含配置文件的副本。
如果您使用
-Dconfig.file=/path/to/prod.conf &
作为命令行参数(env的更新路径)启动时应该选择更改