我正在使用带有glassfish 3.1的jsf 2.1(mojara),我的网站.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 at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:772)
答案 0 :(得分:1)
这个问题表明你使用的是JSF 1.x,而不是JSF 2.x. JSF 1.x使用JSP作为默认视图技术,而JSF 2.x使用Facelets作为默认视图技术。并且,JSF 1.x具有已知的错误(“功能”),当它FacesServlet
被映射到与物理视图文件相同的后缀URL模式时,它将在无限循环中运行。
事实上,你的/WEB-INF/lib
包含以下绝对不属于的JAR。 GlassFish作为一个完整的Java EE容器已经随附了Servlet和JSF API / impl。
javax.servlet.jar
(Servlet API;已由GlassFish提供!)jsf-api.jar
(Mojarra 1.x; GlassFish已供应Mojarra 2.x!)jsf-impl.jar
(Mojarra 1.x; GlassFish已供应Mojarra 2.x!)myfaces-api-1.1.5.jar
(MyFaces 1.x; GlassFish已供应Mojarra 2.x!)myfaces-impl-1.1.5.jar
(MyFaces 1.x; GlassFish已供应Mojarra 2.x!)摆脱它们。即使这样,你也不应该在一个webapp中混合多个JSF实现。