Despliegue Automático de Aplicaciones Web con Maven en Tomcat y Gestión de Errores

Configurar el despliegue automatizado de un archivo WAR en Tomcat mediante Maven requiere una serie de pasos específicos. Primero, es necesario ajustar el proyecto para incluir un plugin que gestione la interacción con el servidor.

En el archivo pom.xml del proyecto, se debe incorporar la siguiente configuración para el plugin de Tomcat:


<build>
  <finalName>app-web</finalName>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>tomcat-maven-plugin</artifactId>
      <version>1.1</version>
      <configuration>
        <url>http://localhost:8080/manager/text</url>
        <username>admin</username>
        <password>admin</password>
        <path>/app-web</path>
      </configuration>
      <executions>
        <execution>
          <id>ejecucion-despliegue</id>
          <phase>deploy</phase>
          <goals>
            <goal>deploy</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Seguidamente, en el archivo de configuración de usuarios de Tomcat (tomcat-users.xml), se deben definir los roles y credenciales:


<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>

Después de iniciar el servidor Tomcat, se ejecuta el proceso de despliegue utilizando Maven con los objetivos package tomcat:redeploy. Para confirmar el éxito, se inspecciona el diretcorio webapps de Tomcat en busca de los archivos generados.

Este flujo de trabajo puede presentar inconvenientes. A continuación se exponen tres errores comunes junto con sus soluciones detalladas:

Error de Conexión Rechazada

Descripción del error: [ERROR] Failed to execute goal ... Connection refused: connect

Razón subyacente: El servidor Tomcat no está en funcionamiento cuando se intenta el despliegue.

Solución aplicable: Verificar que Tomcat esté activo antes de iniciar el proceso de Maven.

Error 401 de Autenticación

Descripción del error: [ERROR] Failed to execute goal ... HTTP response code: 401

Razón subyacente: Las credenciales proporcionadas no son válidas o faltan permisos en la configuración de Tomcat.

Solución aplicable: Garantizar que el usuario definido en tomcat-users.xml tenga el rol adecuado y que los datos de acceso en pom.xml sean idénticos. Ejemplo de configuración:


<role rolename="manager"/>
<user username="admin" password="admin" roles="manager"/>

Error 403 de Acceso Prohibido

Descripción del error: [ERROR] Failed to execute goal ... HTTP response code: 403

Razón subyacente: La URL de despliegue es incorrecta o el usuario carece de los privilegios necesarios.

Solución aplicable:

  • Para versiones de Tomcat 7 y superiores, actualizar la URL en pom.xml a http://localhost:8080/manager/text.
  • Asignar roles adicionales al usuario, como se muestra en el siguiente ejemplo:

<tomcat-users>
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <user username="admin" password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>

Etiquetas: maven tomcat Deployment Tomcat Maven Plugin Java Web Application

Publicado el 6-22 05:50