Проблема GlassFish 3.1 с /faces/*

#java #jsf #glassfish

#java #jsf #glassfish

Вопрос:

Я читал, что к facelet можно получить доступ с помощью GF 3.1 непосредственно с помощью:

  1. http://localhost:8080/myapp/page.faces;
  2. http://localhost:8080/myapp/page.jsf;
  3. http://localhost:8080/myapp/faces/page.xhtml.

потому что это сопоставление выполняется сервером автоматически.

Однако последнее сопоставление не работает. У меня следующая ошибка: The requested resource () is not available.

Есть идеи? Спасибо!

Комментарии:

1. где вы это прочитали, ссылка, пожалуйста

2. В книге Core JavaServer Faces Третье издание «»ПРИМЕЧАНИЕ: Некоторые серверы приложений (включая GlassFish) автоматически предоставляют сопоставление сервлетов для шаблонов /faces/*, *.faces и *.jsf».

3. Также в книге: Packtpub Java EE 6 с сервером приложений GlassFish 3: «»В традиционных веб-приложениях Java мы определяем шаблоны URL, которые будут обрабатываться определенным сервлетом. Специально для JSF обычно использовались суффиксы .jsf или .faces. Другим часто используемым отображением URL для JSF был префикс /faces. По умолчанию GlassFish автоматически добавляет все три этих сопоставления в сервлет faces»»

Ответ №1:

ПРИМЕЧАНИЕ: Некоторые серверы приложений (включая GlassFish) автоматически предоставляют сопоставление сервлетов для шаблонов /faces/*, *.faces и *.jsf

В нем не сказано, что оно сопоставляется с .xhtml и, следовательно, результат.

Комментарии:

1. Нет, это отображение, вызываемое как префикс, означает, что обрабатывается каждый файл, который я записываю после /faces /. Поэтому, когда я пишу /faces/page.xhtml, сервер (контроллер FaceServlet) должен удалить /faces и указать на page.xhtml.

Ответ №2:

Вы проверили, что поддержка JSF включена в ваш веб-проект. Это было проблемой для меня.

В Eclipse IDE:

  1. Щелкните правой кнопкой мыши ваш проект -> Свойства
  2. Выберите: Грани проекта и подтвердите, что установлен флажок JavaServer Faces.
  3. Если нет, проверьте это, и в моем случае потребовалась дополнительная настройка, но я думаю, что каждый может разобраться с этим дальше