Get the server port number from tomcat without a request

前端 未结 12 1554
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-28 06:32

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

12条回答
  •  攒了一身酷
    2020-11-28 07:25

    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");
    }
    

提交回复
热议问题