2012-01-16 5 views
23
Server server = new Server(0); 
(..) 
server.start(); 
// this returns _zero_ ?!?! 
int listeningPort = server.getConnectors()[0].getPort(); 

Yerleşik Jetty 7 API'sini kullanıyorum. Sunucuya (int) yapıcıdan sıfıra geçmek, Jetty'nin kullanılabilir bir portu otomatik olarak atamasına neden olur, hangi portun atandığını nasıl öğrenebilirim?Rastgele kullanılabilir bağlantı noktası istendikten sonra gömülü İskelesi portu nasıl bulunur?

Dokümanları okudum, ancak bu bilgiyi bulamıyorum.

sayesinde ..

+3

Buldum! GetPort() yerine getLocalPort kullanın! – Leo

+1

Bu, test için çok kullanışlı bir tekniktir. –

cevap

35

yapılandırılmış değer verir getPort() işlev.

Seçilen bağlantı noktasını döndürmeli server.getConnectors()[0].getLocalPort(). Jetty'e 9 için

:

Sen ((ServerConnector)server.getConnectors()[0]).getLocalPort() kullanmak gerekir. Her iki durumda da: Önce server.start()'u aramanız gerekir.

+1

plz kodunuzu ctrl + k kullanarak – Shail

+1

Sunucuyu başlatmak önemlidir. Sunucu çalışmadan önce bağlantı noktasını almaya çalışırsanız, '-1' olarak döndürülür. – knittl

-1

Benim için getPort() her iki durumda da çalıştı. Sunucu başlamadan önce

:

((AbstractNetworkConnector) server.getConnectors()[0]).getPort(); -> 8080 
((AbstractNetworkConnector) server.getConnectors()[0]).getLocalPort(); -> -1 
((AbstractNetworkConnector) server.getConnectors()[0]).getHost(); -> null 

sunucu başladıktan sonra:

((AbstractNetworkConnector) server.getConnectors()[0]).getPort(); -> 8080 
((AbstractNetworkConnector) server.getConnectors()[0]).getLocalPort(); -> 8080 
((AbstractNetworkConnector) server.getConnectors()[0]).getHost(); -> null 
İlgili konular