servidor proyecto ejemplos desplegar desde con completo cero aplicaciones aplicacion java tomcat

java - proyecto - Lista de aplicaciones web desplegadas en Apache Tomcat



servidor web java (7)

Necesito obtener una lista de aplicaciones web implementadas en Apache Tomcat. Además, para cada aplicación web necesito obtener una lista de servlets inicializados y JSP. ¿Alguna idea de cómo se puede hacer esto?

He encontrado que el directorio /tomcat/work/Catalina/localhost/ contiene un directorio secundario para cada aplicación web. ¿Podría haber alguna otra aplicación web desplegada que no esté presente allí?


Echa un vistazo al manual de Apache Tomcat . La Sección 5 trata sobre la aplicación Manager en Tomcat, que hace precisamente eso.


La mejor manera de encontrar información sobre las aplicaciones implementadas y su contenido (incluidos servlets, archivos, conexiones y demás) es instalar Lambda Probe además de lo que sirva la instancia de Tomcat.


No se como hacerlo Pero hay una aplicación de administrador en la distribución estándar de Tomcat, que enumera las aplicaciones implementadas. Se proporciona el código fuente, por lo que podría echar un vistazo allí.

Con respecto a su pregunta sobre otras aplicaciones web: Sí, podría haber otras aplicaciones web, que no residen en el directorio de aplicaciones web. Se podrían especificar en el server.xml.


Puedes hacerlo usando javax.management. Se verá como

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. }


Un poco tarde, pero espero que esta ayuda:

Configuraciones de tomcat

Agregue esto en su /.../.../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"/>

Después de eso, reinicie Tomcat y use:

El resultado debe ser:

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