[JSF 2.0] Est-il vraiment possible de se débarrasser de faces-config.xml? Echecs.
Bonjour,
En transition JSF 1.2 vers 2.0, je rencontre des difficultés.
Théoriquement, je dois pouvoir me débarrasser du fichier faces-config.xml devenu optionnel. Dans les faits, je n'y parviens pas.
Soit je m'y prend de la mauvaise manière, soit une déclaration que j'ai faite en un endroit particulier a fait que je ne suis pas entrain d'utiliser les JSF 2.0 mais les 1.2 et dans ce cas, je ne sais pas comment m'assurer de ce j'ai "en dessous de moi". En tout cas, voici mes symptômes:
Je transforme un fichier web.xml ainsi:
Mon fichier web.xml "compatible JSF 1.2":
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/jsf/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/web/authentification/login/v2/loginV2.jsp</welcome-file>
</welcome-file-list>
</web-app> |
est associé à loginV2.jsp qui enclenche FacesServlet et fait un forward à la véritable page d'accueil:
Code:
1 2 3 4 5 6 7 8
| <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head></head>
<body>
<jsp:forward page="jsf/web/authentification/login/v2/loginVisiteurs.jsp" />
</body>
</html> |
Je le transforme en ce web.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/web/authentification/login/v2/loginVisiteurs.jsf[/COLOR]</welcome-file>
</welcome-file-list>
</web-app> |
Et je supprime:
- loginV2.jsp qui faisait le forward auparavant.
- Le fichier faces-config.xml supposé ne plus être indispensable en JSF 2.0.
En joignant la page jsf /web/authentification/login/v2/loginVisiteurs.jsf, j'obtiens cette exception:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| [#|2010-04-21T09:38:52.979+0200|WARNING|glassfishv3.0|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=120;_ThreadName=http-thread-pool-8080(4);|ApplicationDispatcher[/SystemeTest] PWC1231: Servlet.service() for servlet Faces Servlet threw exception
javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:789)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:666)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:499)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:470)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:361)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:318)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:296)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:542)
at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:355)
at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:130)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1518)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:804)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:666)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:499)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:470)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:361)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:318)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:296)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:542)
at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:355)
at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:130)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1518)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:804)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:666)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:499)
at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:470)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:361)
at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:318)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:296)
at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:542)
at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:355)
at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:130)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1518)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:804)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:666)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:499) |
J'ai du mal à l'appréhender.
En vous remerciant,
Grunt.