2011-12-30 66 views
2

我使用的碼頭服務器(從org.mortbay.jetty.Server)讓我的服務器地址 - Jetty Web服務器

Server server = new Server(8080); 

如何讓我的服務器地址,這樣我就可以將消息發送給它進行測試? 謝謝。

+0

你的服務器是多宿舍嗎?你使用虛擬主機嗎?答案取決於這些因素 – fge 2011-12-30 11:49:19

回答

6

使用java.net.InetAddress

InetAddress addr = InetAddress.getLocalHost(); 

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

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

我對你的問題有點困惑。當您啓動並嵌入Jetty服務器時,地址將始終爲「localhost」(您的計算機的回送接口)。該端口將成爲您在創建服務器實例時選擇的任何內容。因此,對於你的榜樣,您的嵌入式Jetty服務器將在

http://localhost:8080 

在任何情況下,你還可以得到Jetty的電流(本地)端口號這樣的:

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

這可能是整合有用測試,在那裏你有一個測試工具(比如JUnit規則或者某個東西)在一個隨機端口上啓動嵌入式Jetty,然後在測試中使用這個Jetty實例時,你需要知道它在哪個端口啓動。

+1

如果您使用的是Jetty 9,則這不起作用。您需要將連接器轉換爲ServerConnector。 – 2014-01-24 12:25:48

+0

@SteveN非常感謝你 – 2014-05-15 00:06:45