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