manager gui enable desplegar deploy context java tomcat java-ee war

java - gui - Tomcat no está autodeplorando el archivo war



tomcat 8 admin console (6)

Seguí los siguientes pasos

  • Apagado Tomcat
  • Implementó un archivo war con una marca de tiempo del 1 de diciembre
  • Iniciar Tomcat: creó el directorio descompuesto para el archivo war implementado.
  • Detener a Tomcat
  • Se actualizó el archivo war con uno nuevo con una marca de tiempo del 3 de diciembre
  • Reiniciar Tomcat

Descubrí que cuando reinicié Tomcat, los archivos existentes en la carpeta que se expandió anteriormente no se actualizaron. ¿No debería la actualización del archivo war haber actualizado el jsp relevante, el archivo de clase?

Miré la documentación y encontré este http://tomcat.apache.org/tomcat-5.5-doc/config/host.html . La siguiente cita en "Despliegue automático de aplicaciones"

Además de la implementación automática que se produce en el momento del inicio, también puede solicitar los nuevos archivos de configuración XML, archivos WAR o subdirectorios que se agregan a la base de aplicaciones (o
$ CATALINA_HOME / conf / [engine_name] / [host_name] en el caso de un archivo de configuración XML) mientras se ejecuta Tomcat se implementará automáticamente, de acuerdo con las reglas descritas anteriormente. El despliegue automático también rastreará las aplicaciones web para los siguientes cambios:

  • Una actualización del archivo WEB-INF / web.xml provocará una recarga de la aplicación web
  • Una actualización de un WAR que se ha expandido activará una anulación de implementación (con una eliminación de la aplicación web expandida), seguido de una implementación
  • Una actualización de un archivo de configuración XML activará una anulación de implementación (sin la eliminación de ningún directorio expandido), seguido de una implementación de la aplicación web asociada.

¿No deberían los archivos haberse actualizado automáticamente como resultado del punto 2 anterior?

Autodeploy se establece en verdadero en server.xml


Agregar autoDeploy = verdadero. Funciona para mi

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">


Cuando uso maven para generar mis compilaciones en tomcat dentro de un ubuntu box, tengo un script llamado

install_wars.sh

Con el siguiente contenido: mvn clean install service tomcat7 stop find /var/lib/tomcat7/webapps/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} /; find . -name *.war -exec cp {} /var/lib/tomcat7/webapps/ /; service tomcat7 start mvn clean install service tomcat7 stop find /var/lib/tomcat7/webapps/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} /; find . -name *.war -exec cp {} /var/lib/tomcat7/webapps/ /; service tomcat7 start mvn clean install service tomcat7 stop find /var/lib/tomcat7/webapps/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} /; find . -name *.war -exec cp {} /var/lib/tomcat7/webapps/ /; service tomcat7 start Quizás desee cambiar los comandos path y maven en consecuencia.

El stop / start de tomcat está ahí para evitar fugas de memoria que pueden ralentizar la aplicación después de varias reubicaciones.


En mi caso yo nombro artefacto

ROOT.WAR

pero debería ser

ROOT.war

¡Aclamaciones!


Históricamente, tomcat nunca ha actualizado el directorio explotado cuando simplemente inserta un nuevo jar, al menos para mí. Siempre asumí que esto era un error, pero nunca lo analicé ya que hay una solución simple. Ambos deberían funcionar bien:

  • Implemente el archivo war utilizando la aplicación de administrador integrado. Está bien si está bien con el uso de una GUI para administración de producción. Nota Esta herramienta solía tener problemas si se implementaba varias veces (de nuevo, nunca profundicé en los detalles), pero un reinicio Tomcat funcionó bien.
  • Detener, eliminar y soltar. Detenga Tomcat, elimine el directorio explotado, coloque el nuevo archivo war.

  • Por lo general, establezco el autodeploy en server.xml en falso. Esto me permite abandonar la nueva guerra y reiniciar tomcat sin tener que lidiar con el directorio correspondiente.


    Sí, el directorio explotado debe actualizarse; sin embargo, no es necesario que detenga a Tomcat para que funcione: funcionará con Tomcat en ejecución. ¿Puedes intentarlo de nuevo sin detener Tomcat entre la actualización?

    También utilizo la aplicación de administrador integrada que me permite actualizar archivos war en cualquier parte del dominio sin ser root (o apache o lo que sea que se esté ejecutando). Esto es muy conveniente y puede integrarse en un script Ant.