Configuración de Tomcat en IntelliJ IDEA: Guía Detallada

Esta guía profundiza en la configuración de Tomcat dentro de IntelliJ IDEA, ofreciendo una comprensión completa del proceso, a diferencia de tutoriales superficiales que solo muestran los pasos sin explicación.

Las capturas de pantalla se obtuvieron en un entorno Linux.

Estructura del Proyecto en IntelliJ IDEA

El primer paso es familiarizarse con la configuración de la estructura de su proyecto en IntelliJ IDEA.

Vaya a File > Project Structure.

Configuración de Directorios de Recursos Web y Archivos web.xml

Para que Tomcat pueda acceder a los recursos web necesarios, es crucial configurar la ruta de los recursos web y el archivo web.xml.

Navegue a Facets > Add(+) > Web.

Nota: Establecer el directorio de recursos web en / se refiere a la raíz del directorio de despliegue (el directorio <output> mencionado en la siguiente captura de pantalla).

Configuraciones de Ejecución/Depuración de Tomcat

Acceda a las configuraciones de ejecución/depuración haciendo clic en Edit Configurations... (normalmente ubicado en la barra de herramientas superior derecha).

Puede agregar una configuración haciendo clic en el signo + y seleccionando External Source... para incluir directorios de recursos adicionales como parte del despliegue del servidor.

Manejo de Problemas Comunes

Recursos Web No Encontrados

Si archivos como HTML, JSP, CSS o JavaScript no se encuentran en el directorio de despliegue de IntelliJ IDEA:

  • Verifique que la opción Facets esté configurada como Web.
  • Asegúrese de que todas las rutas estén configuradas correctamente.

Incluir README.md en el Directorio de Despliegue

Para incluir archivos del módulo, como README.md, en el directorio de despliegue:

  • Haga clic derecho en el módulo deseado bajo Available Elements (por ejemplo, servlet2Spring) y seleccione Put Into Output Root.

Errores 404 al Subir Archivos o Problemas de Ruta

Muchos errores 404, no solo los relacionados con la carga de archivos, pueden resolverse verificando las rutas HTTP:

  • Asegúrese de que la ruta HTTP configurada sea accesible. Intente realizar una solicitud GET/POST para verificarla.
  • Es común que la ruta configurada en Tomcat sea, por ejemplo, http://localhost:8080/Demo_war_exploded, pero la ruta de carga se especifique como http://localhost:8080/upload.
  • Para solucionar esto:
    • Modifique la ruta de carga a http://localhost:8080/Demo_war_exploded/upload.
    • O bien, modifique la configuración de URL de Tomcat (Run/Debug Configuration) a http://localhost:8080/ y establezca el Contexto de Aplicación en /.

Errores al Abrir Hipervínculos HTML

Verifique la barra de direcciones para asegurarse de que la URL no haya cambiado inesperadamente.

Por ejemplo, si la ruta HTTP actual es localhost:45/Demo_war_exploded/ y al hacer clic en un enlace la URL cambia a localhost:45/testa:

Tenga en cuenta la diferencia entre los siguientes tipos de hipervínculos:

  • "/testa": Se refiere a la raíz del dominio (ej. localhost:45/testa).
  • "./testa" o "testa": Se refieren a la ruta HTTP actual (ej. localhost:45/Demo_war_exploded/testa).

Tabla de Rutas:

Ruta Descripción
/ Ruta raíz del dominio.
./ Directorio actual.
../ Directorio padre del directorio actual.

Es importante recordar que la ruta raíz del dominio y el directorio de despliegue no siempre coinciden. En el ejemplo enterior, la ruta HTTP para el despliegue es localhost:45/Demo_war_exploded, mientras que el dominio es localhost:45. La ruta raíz del dominio localhost:45/ no apunta directamente a la ruta de despliegue del proyecto Java Web.

La aparente similitud al acceder a localhost:45 y localhost:45/ se debe a la gestión de la navegación por parte del navegador o el servidor, que maneja el autocompletado de rutas, redirecciones y reenvíos.

Errores Comunes de Tomcat

Revise la corrección de las rutas de filtrado (url-pattern) en su archivo web.xml.

Ejemplo de patrón incorrecto:

<url-pattern>test</url-pattern>

Corrección:

<url-pattern>/test</url-pattern>

El elemento url-pattern no parece soportar rutas relativas y generalmente acepta los siguientes formatos:

Ejemplo Descripción
*.jk Coincide con archivos con la extensión jk.
/go/ Ruta absoluta exacta.
/go/* Coincidencia de ruta parcial.

Las combinaciones como /go/*.do o /go* son inválidas.

El principio de coincidencia es: las rutas más específicas tienen prioridad, y la coincidencia por extensión es la de menor prioridad.

Nota: En la configuración de Tomcat o en archivos XML de Spring, la ruta raíz / para URLs HTTP se refiere a la raíz del dominio (ej. localhost:8081/).

Para recursos estáticos que no deben ser interceptados, puede usar el interceptor predeterminado con servlet-name establecido en default, el cual permite el paso de las URL especificadas. Ejemplo:

<servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>*.gif</url-pattern>
</servlet-mapping>

Consulte: https://blog.csdn.net/hello5orld/article/details/9407905

Para una explicación del principio de despliegue, consulte: "IntelliJ idea 的tomcat原理讲解" (Principio de despliegue de Tomcat en IntelliJ IDEA).

Etiquetas: IntelliJ IDEA tomcat despliegue web configuración de servidor web.xml

Publicado el 6-14 16:25