Actualizar una Clase sin reiniciar Tomcat
Tenemos una aplicación con páginas JSP. Cada vez que actualizamos una Clase Java tenemos que reiniciar Apache Tomcat para que tome los cambios. La pregunta aquí es: ¿Es posible que Tomcat tome los cambios de alguna manera sin que se tenga que reiniciar?
Respuesta
Al instalar Tomcat la opción de recargar Clases después de ser recompiladas no está activada porque baja sensiblemente el rendimiento de las aplicaciones.
Para habilitar la opción de recargar Clases primeramente bajamos el Servidor Tomcat y seguidamente abrimos el fichero context.xml que se encuentra localizado en el directorio $CATALALINA_HOME/conf/
Una vez abierto este fichero tenemos que ir al elemento <Context>
<Context> |
A este elemento le añadimos el atributo reloadable con valor verdadero
| <Context reloadable="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>META-INF/context.xml</WatchedResource> </Context> |
Y finalmente volvemos a levantar el Servidor Tomcat y comprobamos que al modificar un Servlet o cualquier otra Clase Java los cambios surten efecto sin que tengamos que bajar y volver a subir la aplicación o el Servidor.