Изменение местоположения файла приветствия приводит к сбою развертывания

Я получаю ошибку ниже.

FAIL — приложение по контекстному пути /sampleJSF не может быть запущено

Я хочу изменить расположение файла приветствия. У меня есть index.jsp страница в WEB-INF/pages/index.jsp. Как я могу изменить сопоставление сервлетов и список приветственных файлов, чтобы добиться этого?

Вот мои servlet-mapping и welcome-file-list от web.xml.

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>WEB-INF/*</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>WEB-INF/pages/index.jsp</welcome-file>
</welcome-file-list>

person Turgut Dsfadfa    schedule 11.04.2013    source источник
comment
Я не уверен, что вы можете сопоставить шаблон URL-адреса с WEB-INF/*, поскольку файлы в WEB-INF недоступны через URL-адрес.   -  person Johny T Koshy    schedule 11.04.2013


Ответы (1)


Похоже, вы неправильно поняли назначение как файла приветствия, так и папки /WEB-INF.

Приветственный файл должен представлять имя файла, который сервер должен обслуживать из текущей папки, когда запрашивается папка вместо файла в URL-адресе. Например. /, /foo/, /bar/ и т. д. Таким образом, если вы установите для него значение index.jsp, он будет обслуживать /index.jsp при запросе / и /foo/index.jsp при запросе /foo/ и т. д.

Папка /WEB-INF предназначена для файлов, которые не должны быть публично доступны независимо друг от друга. Например, включить файлы, файлы шаблонов, файлы ошибок, файлы тегов, файлы конфигурации и так далее. Сопоставление сервлета Faces с /WEB-INF не имеет никакого смысла, поскольку контейнер сервлета уже ограничивает прямой (общедоступный) доступ к папке /WEB-INF, когда конечный пользователь целенаправленно вводит папку /WEB-INF в URL-адресе.

Отмените все те изменения, которые вы сделали в образце веб-приложения. В них просто нет смысла. Какое бы функциональное требование вы не имели в виду, для которого вы ошибочно полагали, что это правильное решение, оно должно быть решено по-другому.


Не связанный с конкретной проблемой, похоже, что вы только начинаете работать с JSF, но знаете ли вы, что JSP устарел, начиная с JSF 2.0 в 2009 году? Вы абсолютно уверены, что изучаете JSF на основе правильных и актуальных ресурсов? Я настоятельно рекомендую сделать это, иначе вы получите головную боль от путаницы и катастрофу с кодом. Начните с нашей вики-страницы JSF.

person BalusC    schedule 11.04.2013