conf/reference.conf не работает в dist zip в Play 2.2.1 с Akka 2.2.3

Я пишу приложение P2P на Scala, которое работает в 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 работает именно так, как я написал.

Что-то не так с моим кодом? Является ли conf/reference.conf в zip недействительным?

Я хотел бы знать, как применить изменения в conf/reference.conf пользователем после disted разработчиком. Я гуглил об этой проблеме, но я не мог найти никакого ответа.


Я не являюсь носителем английского языка, поэтому, пожалуйста, простите мой плохой английский.


person Windymelt    schedule 08.01.2014    source источник


Ответы (1)


Ваш код выглядит нормально, Play включает копию файла конфигурации внутри сгенерированного jar.

Если вы используете

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

как параметр командной строки (обновленный путь для вашего env) при запуске он должен подхватывать изменения

person wegrata    schedule 08.01.2014