私は Akka マイクロカーネル アプリケーションを作成していますjava.net.InetAddress.getLocalHost.getHostAddress
。この呼び出しが成功した場合は、プロパティのアドレスを使用しますが、成功しakka.remote.netty.hostname
なかった場合は の値にフォールバックしますapplication.config
。
Akka docsSystem.setProperty("akka.remote.netty.hostname", addr)
で示されているように、これは で正常に機能していSimpleClusterApp
ました。
問題が発生したのは、application.config に他のキーが設定されているかどうかを最初に確認したかったときです。たとえば、以下はホストアドレスのオーバーライドに失敗します。これは、(私が思うに) への最初の呼び出しは、後に続く which が効果がないことをConfigFactory.load()
意味するためです。System.setProperty
if(ConfigFactory.load().getBoolean("my-app.do-something")){
//Do some stuff, then change the host address
Try{
java.net.InetAddress.getLocalHost.getHostAddress
} match {
case Success(addr) =>
System.setProperty("akka.remote.netty.hostname", addr)
case Failure(_) =>
}
}
独自のアプリケーションを構成するために別の構成ファイルを使用する必要がありますか、または上記の問題を解決する別の方法はありますか?