2011-12-30 6 views
2

Я использую сервера молов (от org.mortbay.jetty.Server)Получение моего адреса сервера - веб-сервер Jetty

Server server = new Server(8080); 

Как я получу свой адрес сервера, поэтому я могу посылать ему сообщения для тестирования? Спасибо.

+0

Является ли ваш сервер многодомным? Вы используете vhosts? Ответ зависит от этих факторов. – fge

ответ

6

Использование java.net.InetAddress:

InetAddress addr = InetAddress.getLocalHost(); 

// Get IP Address 
byte[] ipAddr = addr.getAddress(); 

// Get hostname 
String hostname = addr.getHostName(); 
1

Я немного запутался о вашем вопросе. Когда вы запускаете и внедряете сервер Jetty, адрес всегда будет «localhost» (интерфейс loopback вашего компьютера). Порт будет таким, каким вы его выбрали, когда создаете экземпляр сервера. Так для примера, ваш встроенный сервер Jetty будет

http://localhost:8080 

В любом случае, вы можете также получить текущий (локальный) номер порта Jetty как это:

int jettyPort = server.getConnectors()[0].getLocalPort(); 

Это может быть полезно для интеграции где у вас есть тестовый инструмент (например, правило JUnit или что-то еще), который запускает встроенный Jetty на случайном порту, а затем при использовании этого экземпляра Jetty в тесте вам нужно знать, в каком порту он был запущен.

+1

Если вы используете Jetty 9, это не сработает. Вам нужно будет отнести разъем к ServerConnector. –

+0

@SteveN большое вам спасибо –