2016-03-31 24 views
2

Otomatik olarak oluşturulmuş bir bağlantı noktası olan bir Java istemcim var. Aktör sistemini başlattıktan sonra, limana erişmek istiyorum.Akka Uzak: otomatik oluşturulmuş bağlantı noktası olsun

[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] 

Ben actorSystem.settings().config().getValue("akka.remote.netty.tcp.port") ile yapılandırma yoluyla elde etmeye çalışmak ise daha önce açıklandığı gibi hala 0 olsun,: ActorSystem.create(...) sonra günlük çıktı böyledir çünkü

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..!? 

portu

zaten ayarlanmalıdır.

Bu bağlantı noktasının (örneğin 58735) nasıl erişilebileceği konusunda bir fikri olan var mı?

cevap

1

Aktör sistemi şu anda çalışmakta olduğu sen limanın Seçeneği alabilirsiniz scala kullanma:

val port = system.provider.getDefaultAddress.port 

Eğer Java aynı kod almak mümkün olacak Umut.

+0

Teşekkürler Danny! Java'da da çalıştı :-) – oustriem

İlgili konular