Is there any Tomcat API or configuration available which can tell an application (probably on startup), what port its running on without a request?
Imagine a scenari
public String getPort() {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set objectNames;
try {
objectNames = beanServer.queryNames(new ObjectName("*:type=ProtocolHandler,*"),
Query.match(Query.attr("name"), Query.value("\"http-*")));
} catch (MalformedObjectNameException e) {
LOGGER.error("Port not defined!", e);
}
return objectNames.iterator().next().getKeyProperty("port");
}
public String getSecurePort() {
MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
Set objectNames;
try {
objectNames = beanServer.queryNames(new ObjectName("*:type=ProtocolHandler,*"),
Query.match(Query.attr("name"), Query.value("\"https-*")));
} catch (MalformedObjectNameException e) {
LOGGER.error("SecuredPort not defined!", e);
}
return objectNames.iterator().next().getKeyProperty("port");
}