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 でこのサーブレットの url-pattern に *.jsp を追加しようとしましたが、それもうまくいきませんでした。私は得た
javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20
では、なぜ JSP を探しているのでしょうか?? これを解決する方法はありますか?
Glassfish 2.1 ではこれを解決できませんでした。最後に、JBoss 7.1 に移行しました。