我正在使用dropwizard版本0.7.1。它被配置为使用“随机”(临时?)端口(server.applicationConnectors.port = 0)。我想获得启动后真正使用的端口,但找不到任何信息来实现该目的。
最佳答案
您可以从生命周期监听器获取serverStarted
回调,以解决此问题。
@Override
public void run(ExampleConfiguration configuration, Environment environment) throws Exception {
environment.lifecycle().addServerLifecycleListener(new ServerLifecycleListener() {
@Override
public void serverStarted(Server server) {
for (Connector connector : server.getConnectors()) {
if (connector instanceof ServerConnector) {
ServerConnector serverConnector = (ServerConnector) connector;
System.out.println(serverConnector.getName() + " " + serverConnector.getLocalPort());
// Do something useful with serverConnector.getLocalPort()
}
}
}
});
}
关于dropwizard - 如何在Dropwizard中以编程方式获取应用程序端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25542050/