获取tomcat中已部署的webapps列表?

时间:2013-06-26 07:05:37

标签: java tomcat jmx

如何使用JMX获取在Tomcat中部署的Web应用程序列表?不同版本的tomcat的URL是不同的(例如,在tomcat v6中,URL:“http://:8080 / manager / list”将给出部署的webapps列表)。目的是计算Tomcat中所有activeSession的总和。我们计算了每个webapp的总和,并得出最终的数字。

1 个答案:

答案 0 :(得分:1)

这是对我们有用的解决方案:

Set<ObjectName> names = mbeanServer.queryNames(new ObjectName("Catalina:type=Host,*"), null);
Set<String> hostNames = new HashSet<String>();
for (ObjectName on : names) {
    hostNames.add(on.getKeyProperty("host"));
}
for (String str : hostNames) {
    ObjectName[] webapps = (ObjectName[]) mbeanServer.getAttribute(new ObjectName("Catalina:type=Host,host=" + str), "children");
    for (ObjectName ob : webapps) {
        String[] appSpl = ob.getKeyProperty("name").split("//localhost");
        webappNames.add(appSpl[1]);
    }
}