0

我正在阅读一本关于 JSF 的书(JavaSever Faces - Introduction by Example),我发现了以下摘录

在 JSF 2.0 之前,为了使 JSF servlet 能够翻译 XHTML 页面,您需要确保 web.xml 文件包含指示 javax.faces.webapp.FacesServlet 类及其关联的 servlet 映射 URL 的 servlet 元素。自 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.xa 是 Servlet 3.x 容器吗?我做错了什么还是书籍指南不正确?

4

0 回答 0