2011-12-30 105 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