Нужно ли серверу 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 контейнером? Я делаю что-то не так или правила книги неверны?