我正在使用 jsf 2.1 (mojara) 和 glassfish 3.1 ,我的网络.xml看起来像:
<welcome-file-list>
<welcome-file>NewFile.xhtml</welcome-file>
</welcome-file-list>
<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>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
我收到此错误
2015-03-11T21:40:15.054+0530|警告: ApplicationDispatcher[/JSFProject] PWC1231: Servlet.service() for servlet Faces Servlet 抛出了异常 javax.servlet.ServletException: PWC1232:超出嵌套请求调度的最大深度:20 org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:772)
技术,而 JSF 2.x 使用 Facelet 作为默认视图技术。而且,JSF 1.x 有一个已知的错误("功能"),即当它映射到与物理视图文件相同的后缀 URL 模式时,它的FacesServlet
将在无限循环中运行。
事实上,您的/WEB-INF/lib
包含以下绝对不属于那里的 JAR。GlassFish作为一个成熟的Java EE容器,已经附带了Servlet和JSF API/impl。
-
javax.servlet.jar
(Servlet API;已经由 GlassFish 提供!) -
jsf-api.jar
(莫哈拉 1.x;GlassFish已经提供了Mojarra 2.x! -
jsf-impl.jar
(莫哈拉 1.x;GlassFish已经提供了Mojarra 2.x! -
myfaces-api-1.1.5.jar
(我的面孔 1.x;GlassFish已经提供了Mojarra 2.x! -
myfaces-impl-1.1.5.jar
(我的面孔 1.x;GlassFish已经提供了Mojarra 2.x!
摆脱它们。即便如此,您也不应该在一个 Web 应用程序中混合使用多个 JSF 实现。