password manager context consola application administracion tomcat web-applications server.xml

context - tomcat manager url



Comience webapps en tomcat en un orden determinado (3)

Tengo 2 webapps:

WebApp 2 depende de WebApp 1

Si WebApp 1 no se está ejecutando, WebApp 2 falla

¿Puedo definir en tomcat que siempre quiero que webapp 1 comience antes de la aplicación web 2?


De acuerdo con la wiki de Apache (en http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q27 ):

No hay una orden de arranque esperada. Ni la especificación Servlet ni Tomcat definen uno. No puede confiar en las aplicaciones que comienzan en un orden en particular.


Es cierto que tomcat no proporciona ninguna forma de hacer cumplir la orden de implementación.

Tomcat implementa webapps en el siguiente orden:

1. Cualquier descriptor de contexto se implementará primero.

2. A continuación, se desplegarán las aplicaciones web explosionadas a las que no hace referencia ningún descriptor de contexto. Si tienen un archivo .WAR asociado en la base de aplicaciones y es más nuevo que la aplicación web explosionada, el directorio explotado se eliminará y la aplicación web se volverá a desplegar desde .WAR

3. Los archivos WAR serán desplegados

Aquí hay una solución propuesta:

Si desea especificar el orden de implementación, defina un contexto para su aplicación web en $ CATALINA_BASE / conf / [enginename] / [hostname] /MyApp.xml

Tomcat escanea $ CATALINA_BASE / conf / [enginename] / [hostname] / realizando File listFiles () que devuelve una matriz de archivos ordenada por valor hash (dependiente del sistema operativo).

Puede usar el siguiente código para verificar en qué orden se implementarán webapps

File file = new File ("/ opt / tomcat / conf / Catalina / localhost"); File [] files = file.listFiles (); for (Archivo f: archivos) {System.out.println ("Nombre de archivo:" + f.getName ()); texto fuerte


Liferay parece haber anulado HostConfig de una manera que hace esto posible. La idea básica es extender HostConfig y luego anular deployApps o los métodos individuales deployDescriptors, depoyWars y deployDirectories para ordenar las aplicaciones de la manera que desee. Luego modifique conf / server.xml de Tomcat agregando el atributo hostConfigClass al elemento Host.

Consulte http://www.javadocs.com/docs/com.liferay.portal/support-tomcat/6.2.0/com/liferay/support/tomcat/startup/PortalHostConfig.java para obtener más información.