我正在尝试获取所有已部署应用程序的列表,特别是--映射到tomcat 的应用程序名称。我希望能够在运行时使用一个在tomcat服务器上收集信息的java代理来完成这个任务。我尝试使用这个代码示例:
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
}
}取自类似的问题,但由于没有登录到manager应用程序,所以我没有正确的权限,因此我得到了一个空列表。
我真正想要的是--我有一个java代理(基于aspectJ),我希望在运行时/部署期间等等,能够获得所有已部署应用程序的列表,而无需亲自登录到管理器。我该怎么做?我不介意检测tomcat的部署代码(这不需要从我这边登录,因为我已经在检测代码了),但我不确定要检测哪个函数。
谢谢,林
发布于 2016-09-20 19:29:51
本问题由两部分组成:
https://stackoverflow.com/questions/39488852
复制相似问题