Как исправить сервлет Faces (javax.faces.webapp.FacesServlet), который не найден в веб-контексте — не удается настроить PrettyFaces DynaView?

В настоящее время я добавил в свой проект netbeans файл prettyfaces-jsf2-3.3.3.jar. Я также добавил в папку WEB-INF файл pretty-config.xml со следующим тестовым правилом перезаписи:

<pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
                  http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">


<url-mapping id="viewRecipe"> 
    <pattern value="/#{ RecipeBean.filterRecipeName }/" />
    <view-id value="/faces/viewRecipe.jsf" />
</url-mapping>

With this configuration the url

http://localhost:8080/wie-koche-ich/Spaetzle
//wie-koche-ich is the name of the netbeans project

следует обратиться к странице viewRecipe.jsf и установить для filterName значение Spaetzle. Но когда я ввожу URL-адрес, сервер Glassfish 4.0 возвращает страницу 404, а в журнале говорится: «Сервлет Faces (javax.faces.webapp.FacesServlet) не найден в веб-контексте — невозможно настроить PrettyFaces DynaView».

Что именно вызывает это исключение и как я могу это исправить?

Кажется, что довольно-config.xml не был загружен.


person Briefkasten    schedule 23.10.2013    source источник


Ответы (1)


В основном это означает, что PrettyFaces не может найти сопоставление FacesServlet. Видеть:

https://github.com/ocpsoft/prettyfaces/blob/3.3.3/core/src/main/java/com/ocpsoft/pretty/faces/config/servlet/WebXmlParser.java#L73

Вы вручную определили сопоставление для FacesServlet в вашем web.xml? Если нет, то можно попробовать добавить. Или вы могли бы попытаться отладить этот класс, чтобы узнать, что происходит. На самом деле этот класс должен (в случае сервлета 3.x) перебирать все регистрации сервлетов и находить сервлет.

person chkal    schedule 23.10.2013
comment
Спасибо после добавления ‹servlet› ‹servlet-name›Faces Servlet‹/servlet-name› ‹servlet-class› javax.faces.webapp.FacesServlet ‹/servlet-class› ‹load-on-startup›1‹/load-on -startup› ‹/servlet› ‹servlet-mapping› ‹servlet-name›Faces Servlet‹/servlet-name› ‹url-pattern›*.jsf‹/url-pattern› ‹/servlet-mapping› в файл web.xml сообщение журнала исчезает, но само правило перезаписи не работает, мне нужно повнимательнее взглянуть на это. - person Briefkasten; 23.10.2013
comment
Хорошо, не стесняйтесь писать на форумах ocpsoft, если у вас возникнут дополнительные проблемы. - person chkal; 24.10.2013