Как обнаружить встроенный порт Jetty после запроса случайного свободного порта? - PullRequest
29 голосов
/ 16 января 2012
Server server = new Server(0);   
(..)
server.start();
// this returns _zero_ ?!?!
int listeningPort = server.getConnectors()[0].getPort();

Я использую встроенный Jetty 7 API.Передача нуля конструктору Server (int) приводит к тому, что Jetty автоматически назначает доступный порт, как я могу узнать, какой порт был назначен?

Я прочитал документы, но не могу найти эту информацию.

спасибо ..

Ответы [ 2 ]

39 голосов
/ 20 февраля 2013

Функция getPort() возвращает настроенное значение.

Попробуйте server.getConnectors()[0].getLocalPort(). Она должна вернуть выбранный порт.

Для Jetty 9:

Вам необходимо использовать((ServerConnector)server.getConnectors()[0]).getLocalPort().

В обоих случаях: сначала нужно позвонить server.start().

3 голосов
/ 02 апреля 2018

В дополнение к @ pascos answer вы также можете получить выбранный порт по:

server.getURI().getPort(); // e.g: 44759

Если вам интересно получить URL всего сервера (с портом), вы можете сделать:

server.getURI().toString(); // e.g: http://127.0.0.1:44759/
...