PWC1232:超出嵌套请求调度的最大深度:org.apache.catalina.core.ApplicationDi



我正在使用 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 1.x,而不是 JSF 2.x。 JSF 1.x 使用 JSP 作为默认视图

技术,而 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 实现。

最新更新