Server server = new Server(0);
(..)
server.start();
// this returns _zero_ ?!?!
int listeningPort = server.getConnectors()[0].getPort();
我正在使用嵌入式Jetty 7 API。将零传递给Server(int)构造函数会导致Jetty自动分配可用端口,如何发现分配了哪个端口?
我已阅读文档,但无法找到此信息。
感谢..
答案 0 :(得分:38)
函数getPort()
返回配置的值。
尝试server.getConnectors()[0].getLocalPort()
它应该返回选定的端口。
对于Jetty 9:
您需要使用((ServerConnector)server.getConnectors()[0]).getLocalPort()
。
在这两种情况下:您需要先致电server.start()
。
答案 1 :(得分:3)
除了@pascos answer之外,您还可以通过以下方式获取选择的端口:
server.getURI().getPort(); // e.g: 44759
如果您有兴趣获取整个服务器URL(带端口),您可以执行以下操作:
server.getURI().toString(); // e.g: http://127.0.0.1:44759/