Server server = new Server(0);
(..)
server.start();
// this returns _zero_ ?!?!
int listeningPort = server.getConnectors()[0].getPort();
我正在使用嵌入式Jetty 7 API。将零传递给Server(int)构造函数会导致Jetty自动分配一个可用端口,如何发现分配的端口号?我已经阅读了文档,但找不到这个信息。
谢谢。
Server server = new Server(0);
(..)
server.start();
// this returns _zero_ ?!?!
int listeningPort = server.getConnectors()[0].getPort();
我正在使用嵌入式Jetty 7 API。将零传递给Server(int)构造函数会导致Jetty自动分配一个可用端口,如何发现分配的端口号?getPort()
函数返回已配置的端口值。
尝试server.getConnectors()[0].getLocalPort()
,它应该返回所选端口。
对于Jetty 9:
您需要使用((ServerConnector)server.getConnectors()[0]).getLocalPort()
。
在这两种情况下,您需要先调用server.start()
。
server.start()
后我将没有连接器。这里是Kotlin代码:server.addConnector(ServerConnector(server).apply { port = 0 })
然后我能够使用@paskos建议的技术来获取端口。 - Pierre Thibault除了@pascos的回答,你也可以通过以下方法获取所选端口:
server.getURI().getPort(); // e.g: 44759
server.getURI().toString(); // e.g: http://127.0.0.1:44759/