我正在尝试在 Glassfish2.1 上运行 jsf 2.1 应用程序。WAR 文件部署成功,但是当我运行应用程序时,它给出了 HTTP 404 错误。在日志中,我可以看到以下内容
SEVERE: PWC6117: File "C:\Project\CA\workspace\.metadata\.plugins\com.sun.enterprise.jst.server.sunappsrv91\v2domain2\applications\j2ee-modules\fal\search.jsp" not found
我想知道为什么它需要 JSP,它应该寻找的 URL 是 fal/search.jsf。我已经在 JBoss7.1 上运行了这个应用程序,它在那里运行得很好。我的应用程序中没有 JSP,我创建了 .xhtml 文件。这是我的web.xml的相关内容
<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>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<!-- Maintain page state on client side -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
和faces-context.xml
<navigation-rule>
<from-view-id>/search.xhtml</from-view-id>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/info.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
我尝试在 web-xml 中的这个 servlet 的 url-pattern 中添加 *.jsp,但这也不起作用。我有
javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20
那它为什么要找JSP??有没有办法解决这个问题?
我们无法在 Glassfish 2.1 上解决这个问题。最后我们迁移到 JBoss 7.1。