我需要在Apache Tomcat中獲取部署的webapps列表。另外,對於每個webapp,我需要獲得已初始化的servlet和JSP的列表。任何想法如何做到這一點?我發現\tomcat\work\Catalina\localhost\
包含每個webapp的子目錄。有沒有其他已部署的Web應用程序不存在?在Apache Tomcat中列出部署的webapps
回答
我不知道該怎麼做。但是在tomcat的標準發行版中有一個管理器應用程序,其中列出了已部署的應用程序。源代碼提供,所以你可以看看那裏。
關於你關於其他webapps的問題:是的,可能有其他的webapps,它不駐留在webapp目錄中。它們可以在server.xml中指定。
對於部署的應用程序及其內容(包括servlet,文件,連接等)的信息,我發現的最佳方式是除了tomcat實例正在服務之外,還安裝Lambda Probe。
查看Apache Tomcat manual。第5部分是關於Tomcat中的Manager應用程序,它就是這樣做的。
http://code.google.com/p/psi-probe/wiki/Features看起來是一個很好的看看。
您可以通過使用javax.management來完成。它看起來像
private Iterable<String> collectAllDeployedApps() {
try {
final Set<String> result = new HashSet<>();
final Set<ObjectName> instances = findServer()
.queryNames(new ObjectName("Tomcat:j2eeType=WebModule,*"), null);
for (ObjectName each : instances) {
result.add(substringAfterLast(each.getKeyProperty("name"), "/")); //it will be in format like //localhost/appname
}
return result;
} catch (MalformedObjectNameException e) {
//handle
}
}
private MBeanServer findServer() {
ArrayList<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
for (MBeanServer eachServer : servers) {
for (String domain : eachServer.getDomains()) {
if (domain.equals("Tomcat")) {
return eachServer;
}
}
}
//handle. We are not in Tomcat.
}
漂亮的代碼。完美的作品。謝謝。 – jeorfevre
在Tomcat 7+中,您可能需要將「Tomcat」更改爲「Catalina」,以便示例代碼正常工作。一旦做出改變,示例代碼就可以很好地工作。 –
@WilliamBrendel - 我有類似的問題,但在我的情況下,我無法登錄(我在測試應用程序) - 因此應用程序列表始終爲空。任何想法?我的問題可以在這裏找到 - http://stackoverflow.com/questions/39488852/tomcat-7-get-the-application-name-during-runtime-without-login-via-java-agent – Lin
Manual quote: List_Currently_Deployed_Applications
http://localhost:8080/manager/text/list
晚了一點,但我希望這幫助:
Tomcat的配置
中添加這是你的/... /.../TOMCAT_HOME/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="my_user" password="my_pass" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
之後,重新啓動Tomcat和使用:
使用URL(上次登錄)
使用命令行
捲曲-v -u my_user :my_pass http://127.0.0.1:some_port/manager/text/list
結果應該是:
OK - Listed applications for virtual host localhost
/manager:running:0:manager
/:running:0:ROOT
/docs:running:0:docs
/examples:running:0:examples
/host-manager:running:0:host-manager
/my_app:running:0:my_app
/my_other_app:running:0:my_other_app
....
* Connection #0 to host 127.0.0.1 left intact
HTH
- 1. 獲取tomcat中部署的webapps列表?
- 2. Apache Tomcat部署後出錯
- 3. Apache Tomcat部署
- 4. tomcat在webapps之外部署戰爭
- 5. Apache Tomcat:多個webapps
- 6. Netbeans不在Apache webapps目錄上部署
- 7. Netbeans/Maven/Tomcat在Tomcat中部署到webapps/ROOT?
- 8. Apache Continuum-在tomcat上部署
- 9. Apache的tomcat/maven的部署
- 10. 使用JMX MBean檢索部署在Tomcat上的webapps的名稱
- 11. 熱部署tomcat/webapps文件夾表單IntellijIDEA
- 12. 在Apache Tomcat中部署應用程序時出錯
- 13. 如何在tomcat上部署Apache Nutch -1.6?
- 14. 在tomcat 6上部署Apache Archiva
- 15. 在jetty中部署webapps和websockets
- 16. 如何爲tomcat 6及其部署的webapps正確配置JNDI?
- 17. 部署Web服務的Apache Tomcat
- 18. Apache Tomcat/6.0.24上的部署錯誤
- 19. 在Tomcat的相同實例中部署多個配置爲Root的webapps
- 20. Tomcat部署
- 21. Azure WebApps與Jenkins部署
- 22. 卸載Tomcat 6.x時,如何在webapps目錄下部署/取消部署/刪除.war部署?
- 23. 通過複製到webapps手動部署Tomcat應用程序
- 24. 在Tomcat中部署war文件webapps目錄沒有在瀏覽器上運行
- 25. 在Apache Tomcat中部署的Webapp中登錄失敗
- 26. 我可以讓Tomcat 7部署配置的webapps,但不啓動它們嗎?
- 27. Apache Tomcat 7 - war文件不部署
- 28. Apache Tomcat部署與負載平衡器
- 29. 不能部署使用Apache Tomcat,但部署與Eclipse工程
- 30. Tomcat webapps目錄
我做看看那裏,但/經理/列表可能屬於以前的版本。無論如何,我需要獲得清單 – galchen