Не удается получить доступ к WEB-INF/папке/папке/файлу.jsp

Я разрабатываю небольшой сервлет с eclipse на сервере Tomcat.

Из этого сервлета я хочу включить некоторые файлы jsp, он отлично работает для файла

WEB-INF/веб-сайт/NewFile.jsp

Но когда я пытаюсь получить файл jsp в

/WEB-INF/веб-сайт/общий

Я получаю исключение 404 not found.
У меня есть другие файлы в "общей" папке, и я могу получить к ним доступ.
Итак, я предполагаю, что eclipse не находит jsp в этой папке, когда дело доходит до их компиляции.
Я полагаю, что мне нужно каким-то образом изменить "путь поиска jsp" проекта eclipse, но я не знаю, как это сделать


person Kotaw    schedule 29.04.2014    source источник


Ответы (2)


Пытаться

/yourapp/WEB-INF/classes/META-INF/resources/website/common/newfile.jsp

для

http://localhost:8080/yourapp/website/common/newfile.jsp

Часто другие WEB-INF папки недоступны.

person Grim    schedule 29.04.2014
comment
У меня не работает:/, я могу получить доступ к файлу /myapp/WEB-INF/website/common/file.json, поэтому для меня путь в порядке, но файлы jsp не включены во время сборки eclipse - person Kotaw; 29.04.2014
comment
Спецификация сервлета 3.0 требует поддержки статических файлов только из META-INF/resources, если META-INF/resources находится внутри файла jar в каталоге /WEB-INF/lib. Файлы Kotaw jsp находятся внутри web-inf/somefolde/somefolder - person Asif Bhutto; 29.04.2014
comment
Спецификация сказала: Except for static resources and jsps packaged in the meta-inf/resources of a jar (download.oracle.com/otn-pub/jcp/servlet-3.0-fr-eval-oth-JSpec/) - person Grim; 29.04.2014
comment
@Kotaw Какая версия сервера? - person Grim; 29.04.2014
comment
Хм, злодей! Какая у вас версия web.xml (<web-app version="3.0">)? - person Grim; 29.04.2014
comment
Нет, это 3.1. См.: ‹версия веб-приложения = 3.1 xmlns=xmlns.jcp.org/xml/ ns/javaee xmlns:xsi=w3.org/2001/XMLSchema-instance xsi:schemaLocation=xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd - person Kotaw; 29.04.2014
comment
Теперь это работает, но я не понимаю, почему... Это точно такой же код... (тем временем я попробовал Tomcat 7.0 и вернулся к 8.0) - person Kotaw; 29.04.2014
comment
Не знаю, почему это работает сейчас - я в замешательстве. (кстати: Tomcat7 не поддерживает сервлет-3.1) - person Grim; 29.04.2014

Вы не можете получить доступ к файлам в папке WEB-INF напрямую. Контейнер будет искать классы в WEB-INF/классах, а файлы jsp в WEB-INF могут быть включены другими JSP/сервлетами, но любой браузер, запрашивающий ресурсы, получит ответ 404

person Asif Bhutto    schedule 29.04.2014
comment
@Peter Rader прочитайте вопрос пользователя, затем мой ответ, а затем приведенную выше ссылку, которую вы отправляете мне. Tomcat выполняет это требование, потому что он обслуживает файлы из jar, но не из WEB-INF/классов. Надеюсь, это рассеет ваши сомнения. - person Asif Bhutto; 29.04.2014
comment
Ошибка устранена, как описано. Видите ли, я могу обслуживать jsps и любой другой браузер, запрашивающий ресурсы через WEB-INF/classes. - person Grim; 29.04.2014