Нужно ли серверу Glassfish 4.x знать о сопоставлении FacesServlet?

Я просматривал одну из книг по JSF (JavaSever Faces - Введение в пример) и нашел следующий отрывок

До JSF 2.0 для того, чтобы сервлет JSF мог переводить страницу XHTML, вам нужно было убедиться, что файл web.xml содержит элемент сервлета, указывающий класс javax.faces.webapp.FacesServlet и связанный с ним URL-адрес сопоставления сервлета. Начиная с выпуска JSF 2.0, если используется контейнер Servlet 3.x, FacesServlet автоматически сопоставляется для вас, поэтому нет необходимости настраивать конфигурацию web.xml.

Я решил попробовать, но НЕ сработало и получило ошибку 404.

web.xml

    <!-- Commenting this out in Glassfish server based on the book's guidelines -->
    <!-- 
    <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>/faces/*</url-pattern>
    </servlet-mapping>
-->

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>

    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>

</web-app>

До перехода на Glassfish 4.x я уже работал над Tomcat 8. Странная часть, как только я раскомментирую FacesServlet отображение в развертывании дескриптора все прекрасно работает, и я не получаю 404.

Является ли Glassfish 4.x a Servlet 3.x контейнером? Я делаю что-то не так или правила книги неверны?

0 ответов

Другие вопросы по тегам