1

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

4

1 回答 1

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]);
    }
}
于 2013-12-11T22:10:07.173 回答