Esta es mi primera pregunta aquí (así que sea gentil :)). He buscado en todas partes y no puedo encontrar la respuesta a mi problema (también se volvió un poco loco en el proceso).Apache Tomcat: El recurso solicitado() no está disponible (mientras se está accediendo al recurso que debería estar disponible)
Estoy utilizando Tomcat 7 y el último Eclipse IDE para desarrolladores de Java EE (plataforma Eclipse 3.7.2 y Java EE IDE 1.4.2). Entonces, aparece este error: "El recurso solicitado() no está disponible" al acceder al http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp. He comprobado muchas veces que este archivo está en el disco en la carpeta exacta. Intenté ejecutar Tomcat dentro de Eclipse y desplegar .war exportado en Tomcat. Cada vez que aparece el mismo error.
Mis archivos:
myTest/index.jsp
myTest/WEB-INF/html/GetName.html
myTest/WEB-INF/jsp/savename.jsp
Cuando corro "http: // localhost/myTest" index.jsp siempre se ejecuta correctamente. Luego uso
"<jsp:forward page="WEB-INF/html/GetName.html"></jsp:forward>"
dentro de mi index.jsp para navegar a GetName.html y que también funciona. El problema aparece en GetName.html:
<form action='WEB-INF/jsp/savename.jsp' method="post" >
What's your name? <INPUT TYPE=TEXT NAME=username SIZE=20>
<P><INPUT TYPE=SUBMIT>
</form>
cuando se presiona botón de enviar el formulario, el navegador vuelve a dirigir a: http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp y el error aparece.
Así que realmente no entiendo por qué ocurre esto ... Por defecto aplicaciones Tomcat funcionan perfectamente ...
P. S. He intentado también manualy navegar a los archivos:
http://127.0.0.1:8080/myTest/WEB-INF/html/GetName.html
http://127.0.0.1:8080/myTest/WEB-INF/jsp/savename.jsp
pero también obtener el error (incluso cuando idex.jsp también se desplaza a GetName.html sin ningún problema) ..
Cualquier ayuda es muy apreciada! ¡Gracias!
Gracias hombre! Pero el problema aún persiste ... ¿Cómo puedo vincular diferentes archivos dentro de diferentes carpetas? ¿Por qué el formulario en GetName.html no puede acceder a WEB-INF/jsp/savename.jsp? ¿Cuál sería la solución? (excepto poniendo todos los archivos en el directorio raíz ...) – MoD
Lamento decirlo, pero con los JSP simples no hay otra solución. El navegador envía los datos del formulario, de modo que el navegador ensambla la URL y envía los datos al servidor utilizando esa URL, y el servidor dice "NO, no puede ingresar a WEB-INF". Por lo tanto, debe poner * savename.jsp * en el directorio raíz, u otro directorio debajo del directorio raíz, y usar incluir etiquetas o directivas para cargar el contenido real desde archivos en WEB-INF. – t0r0X
Creo que sé lo que intenta lograr: proteger/ocultar todos los JSP y el código relacionado. Como dije, eso no se puede hacer con JSP simples. Debe crear un servlet o un filtro que sirva como "puerta de enlace" y se asigne a un URI que no esté en/debajo de WEB-INF, y que reenvíe las solicitudes a sus JSP dentro de WEB-INF. Prefiero recomendar el uso de un marco que le ofrezca tales capacidades, como p. Marco Spring MVC. Déjame darte algunos consejos: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-features – t0r0X