2013-06-26 78 views
1

如何獲取使用JMX部署在Tomcat中的webapp的列表?這些URL對於各種版本的tomcat是不同的(例如,在tomcat v6中,URL:「http://:8080/manager/list」將給出部署的webapps列表)。意圖是計算Tomcat中所有活動的總和。我們已經計算出每個webapp的總和併到達最終的數字。獲取tomcat中部署的webapps列表?

+1

的/經理在Tomcat的Web應用程序,而不是一個嵌入模塊,它可以像其他Web應用程序被刪除,你需要尋找的xml文件在%CATALINA%/ conf/Catalina/localhost(只是用戶應用程序)中,每個包含docBase指的是web應用程序基本代碼,並且%CATALINA%/ webapps包含預安裝的應用程序,例如/ manager – 2013-06-26 07:53:37

回答

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