2016-03-31 7 views
2

私は、自動生成されたポートを取得するJavaクライアントを持っています。アクターシステムを起動した後、私はそのポートにアクセスしたい。Akka Remote:自動生成されたポートを取得

Config clientConfig = ConfigFactory.parseString("akka.remote.netty.tcp.port = 0") 
     .withFallback(ConfigFactory.parseString("akka.remote.netty.tcp.hostname = " + serverHostName)) 
     .withFallback(ConfigFactory.load("common")); 

actorSystem = ActorSystem.create("clientActorSystem", clientConfig); 

// how to access the generated port here..!? 

ActorSystem.create(...)後のログ出力がそのようであるので、ポートがすでに設定されている必要があります私はactorSystem.settings().config().getValue("akka.remote.netty.tcp.port")とコンフィギュレーションを経由して、それを取得しようとした場合

[INFO] [03/31/2016 14:11:32.042] [main] [akka.remote.Remoting] Starting remoting 
[INFO] [03/31/2016 14:11:32.233] [main] [akka.remote.Remoting] Remoting started; listening on addresses :[akka.tcp://[email protected]:58735] 
[INFO] [03/31/2016 14:11:32.234] [main] [akka.remote.Remoting] Remoting now listens on addresses: [akka.tcp://[email protected]:58735] 

、私はまだ0の前に定義されますよう。

このポート(この例では58735)にどのようにアクセスできますか?あなたが俳優のシステムが現在実行されているポートのオプションを取得することができスカラ座を使用して

答えて

1

val port = system.provider.getDefaultAddress.port 

あなたはJavaで同じコードを取得することができます願っています。

+0

ありがとうDanny!それはJavaでもうまくいきました:-) – oustriem

関連する問題