Una de las tareas más comunes al trabajar con Apache Tomcat es desplegar aplicaciones web desarrolladas en Java. Normalmente, una aplicación Java Web se empaqueta en un archivo WAR (Web Application Archive), el cual contiene el código compilado, bibliotecas, configuraciones y recursos necesarios para ejecutarse dentro del contenedor de servlets.
En este tutorial aprenderás cómo desplegar una aplicación creada con Maven utilizando Apache Tomcat paso a paso.
¿Qué necesitas para desplegar una aplicación Java en Tomcat?
Java JDK
Instala Java JDK 8 o superior. en cualquier sistema operativo
Puedes verificar las versiones instaladas ejecutando:
java -version
mvn -version
Apache Maven
Revisa si tienes Apache Maven
Apache Tomcat
Parende a instalar Apache Tomcat 9 o superior en cualquier sistema operativo
Iniciar el servidor Apache Tomcat
Podemos iniciar el servidor con:
/opt/tomcat/bin/catalina.sh
Revisa Comandos de Apache Tomcat
Proyecto Java Maven
Para esta practica, vamos a usar un proyecto Java Maven donde construimos una API REST con Java Servlets y Arquitectura Hexagonal. Este proyecto lo puede encontrara a y revisar a detalle en https://codigoelectronica.com/blog/como-crear-una-api-rest-con-java-servlets.
El código que tenemos, lo encontramos a detalle en https://github.com/codigoelectronica/contact-api.
Una aplicación web Maven normalmente tiene una estructura similar a la siguiente:
contact-api
└── src/main/com/example/contacts
└── adapter
└── servlet
└── application
└── config
└── domain
└── infraestructura
└── repository
El directorio webapp contiene los recursos web que serán desplegados dentro de Tomcat.
Compilar la Aplicación
Desde la raíz del proyecto ejecuta:
mvn clean package
Maven descargará las dependencias necesarias, compilará el proyecto y generará un archivo WAR dentro del directorio target.
Al finalizar verás algo similar a:
target/
└── contact-api.war
¿Qué es un Archivo WAR?
WAR significa Web Application Archive. Es un paquete comprimido que contiene:
- Clases Java compiladas.
- Dependencias del proyecto.
- Archivos JSP.
- Archivos HTML.
- Recursos CSS y JavaScript.
- Configuraciones de la aplicación.
Tomcat utiliza este archivo para desplegar automáticamente la aplicación.
Método 1: Despliegue Manual Copiando el WAR
La forma más sencilla de desplegar una aplicación consiste en copiar el archivo WAR al directorio webapps de Tomcat.
Linux:
cp target/contact-api.war /opt/tomcat/webapps/
Windows:
copy target\contact-api.war C:\Tomcat\webapps\
Una vez copiado, Tomcat detectará automáticamente el nuevo archivo y lo desplegará.
Verificar el Despliegue
Después de copiar el WAR, revisa el contenido del directorio webapps:
ls /opt/tomcat/webapps
Deberías observar algo similar a:
ROOT
docs
examples
manager
host-manager
contact-api
contact-api.war
Tomcat descomprime automáticamente el archivo WAR y crea una carpeta con el mismo nombre.
Acceder a la Aplicación
Si Tomcat se encuentra ejecutándose en el puerto 8080 podrás acceder mediante: http://localhost:8080/contact-api
Método 2: Desplegar desde Tomcat Manager
Tomcat incluye una aplicación administrativa llamada Manager que permite desplegar aplicaciones desde una interfaz web.
Crear Usuario Administrador
Revisa a detalle como gestionar los usuarios en https://codigoelectronica.com/blog/gestion-de-usuarios-en-apache-tomcat
Edita el archivo:
TOMCAT_HOME/conf/tomcat-users.xml
Agrega:
<tomcat-users>
<role rolename="manager-gui"/>
<user
username="admin"
password="admin123"
roles="manager-gui"/>
</tomcat-users>
Reinicia Tomcat.
Ingresar al Manager
Accede a: http://localhost:8080/manager/html
Ingresa las credenciales configuradas anteriormente.
Subir el Archivo WAR
Dentro del panel Manager encontrarás la sección: Deploy → WAR file to deploy
Selecciona el archivo WAR generado por Maven y pulsa Deploy.
Tomcat realizará el despliegue automáticamente.
Revisar los Logs
Si ocurre algún error durante el despliegue, consulta los logs.
Linux:
tail -f /opt/tomcat/logs/catalina.out
Windows:
TOMCAT_HOME/logs/
Los errores más comunes suelen estar relacionados con:
- Dependencias faltantes.
- Errores de compilación.
- Configuraciones incorrectas.
- Versiones incompatibles de Java.
- Problemas en web.xml.
Actualizar una Aplicación Desplegada
Cuando realizas cambios en el proyecto debes:
Compilar nuevamente. Generar un nuevo WAR.
mvn clean package
Eliminar la versión anterior.
rm -rf /opt/tomcat/webapps/contact-api
rm -f /opt/tomcat/webapps/contact-api.war
Copiar el nuevo WAR.
cp target/contact-api.war /opt/tomcat/webapps/
Tomcat volverá a desplegar automáticamente la nueva versión.
Flujo Completo de Despliegue
- Desarrollar la aplicación Java.
- Configurar Maven.
- Ejecutar mvn clean package.
- Generar archivo WAR.
- Copiar WAR a webapps.
- Tomcat despliega automáticamente.
- Verificar logs.
- Acceder mediante navegador.
Conclusión
Apache Tomcat simplifica enormemente el despliegue de aplicaciones Java Web. El procedimiento más habitual consiste en compilar el proyecto con Maven, generar un archivo WAR y copiarlo dentro del directorio webapps. Tomcat detectará el archivo, lo descomprimirá y lo pondrá en ejecución automáticamente. A medida que avances podrás automatizar este proceso utilizando Maven, Jenkins, GitHub Actions, Docker o Kubernetes para implementar estrategias de despliegue más avanzadas.