Tomcat no encuentra los recursos – java angularjs http

Pregunta:


Bueno tengo una aplicación con AngularJS que hace peticiones al API de gitHub como un ejemplo para aprender a usar AngularJS, pero el problema es que cuando meto la pagina con todas las dependencias en un Dynamic Web Project de Java (esto lo hago porque necesito usar servicios REST definidos con Jersey), y lo corro con Tomcat 8.0.36, me tira los siguientes errores en la dev console de Chrome (lo pruebo en Chrome porque en el navegador de Eclipse no tengo consola de desarrollador para tracear los errores).

La primera vez que intento entrar a localhost:8080/MissingDog pasa esto:
Error Log
Después muestra este log cuando sigo tratando de entrar:
Error Log 2
Este es el log si abro el index.html directamente desde una carpeta, sin meterlo dentro del Dynamic Web Project de Java:
Error Log 3

Les dejo mi arbol de directorios del proyecto de Java (MascotaService.js no esta implementado todavia, no hace nada):

Directorie Tree

Preguntado por: Augusto Herbel

Las imágenes del error muestran la causa del problema, junto con la imagen de la estructura de tu proyecto. Tus recursos están dentro de la carpeta WEB-INF, la cual no es visible por los navegadores. Los servidores de aplicaciones en Java no muestran el contenido de esta carpeta.

Para resolver tu problema, basta con mover los archivos de ubicación a fuera de la carpeta WEB-INF. La estructura de tu proyecto sería como sigue:

WebContent
- META-INF
- resources (aquí van tus recursos JS, CSS, etc)
  - css
  - fonts
  - images
  - js
  - lib
  - (otras carpetas...)
- WEB-INF
  + web.xml
  - (otros archivos y carpetas para la configuración de tu proyecto como web.xml)

Solo una pequeña aclaración, los archivos de la carpeta web-inf si pueden ser accesados, solo paginas web(jsp,xhtml,html), pero para accesarlos archivos dentro de esta carpeta, se tiene que pasar por un controlador, no serán accesibles a través de una url, por lo cual es una buena practica por seguridad y sigue el patron MVC.

Saludos

Fuente

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *