以下を使用して、コマンドラインでカスタム構成ファイルを指定して、サーバー上でアプリケーションを正常に実行しました。
-Dconfig.file=app.conf
しかし、カスタム構成ファイルをローカルマシンにコピーしてそこで使用しようとすると、に渡し-Dconfig.file
てrun
奇妙なエラーが表示され始めました。私は最終的にこれを追跡して、グローバルオブジェクトのonStart
メソッドがまったく実行されていないことを突き止めました。なぜこうなった?
以下を使用して、コマンドラインでカスタム構成ファイルを指定して、サーバー上でアプリケーションを正常に実行しました。
-Dconfig.file=app.conf
しかし、カスタム構成ファイルをローカルマシンにコピーしてそこで使用しようとすると、に渡し-Dconfig.file
てrun
奇妙なエラーが表示され始めました。私は最終的にこれを追跡して、グローバルオブジェクトのonStart
メソッドがまったく実行されていないことを突き止めました。なぜこうなった?
何らかの理由で、タイプセーフな設定ライブラリが、カスタム設定ファイルでこの行をロードするのに黙って失敗していました
include "application"
sbt run
ただし、サーバー上でアプリケーションをスタンドアロンで実行している場合にのみ機能しました。
したがって、そのapplication.global=global.Global
行はそのファイルで読み取られていなかったため、Play はオブジェクトを見つけることができず、何もしないGlobal
空のGlobal
オブジェクトに静かに戻りました。
行を変更しinclude
て絶対ファイルパスを指定するとapplication.conf
、問題が修正されました。