Bonjour,

Je débute en JSF et j'essaye de migrer une application qui avait été développée en Struts avec des Tiles.

J'ai donc regardé plusieurs articles et tuto qui conseil d'utiliser Facelets qui est plus adapté pour JSF. J'ai réussi à configurer Facelets avec JSF, ça fonctionne, j'arrive a créer mes templates et tout le reste.

Par contre, si j'ai JSF et Spring, alors quand j'essaye d'intégrer Facelets, j'ai une erreur que je n'arrive pas à résoudre.

Voici mes fichiers de conf :

web.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
 
	<listener>
		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>
 
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:application-context.xml</param-value>
	</context-param>
 
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
	</servlet>
 
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
 
	 <context-param>
	<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
	<param-value>.xhtml</param-value>
  </context-param>
face-config.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<application>
		<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
	</application>
 
	<application>
    	<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
 	</application>	
 
	<navigation-rules>
		<from-view-id>*</from-view-id>
		<navigation-case>
			<form-outcome>saveSuccess</form-outcome>
			<to-view_id>result.xhtml</to-view_id>
		</navigation-case>
	</navigation-rules>
Et voilà l'erreur que j'ai quand je tente d'acceder à ma page :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
51
52
53
 
12 mars 2011 06:50:34 com.sun.facelets.FaceletViewHandler handleRenderException
GRAVE: Error Rendering View[/inscription.xhtml]
com.sun.facelets.FaceletException: Could not instantiate feature[compiler.ExpressionFactory]: com.sun.el.ExpressionFactoryImpl
	at com.sun.facelets.compiler.Compiler.featureInstance(Compiler.java:153)
	at com.sun.facelets.compiler.Compiler.createExpressionFactory(Compiler.java:142)
	at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:193)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
	at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:662)
12 mars 2011 06:50:34 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: "Servlet.service()" pour la servlet Faces Servlet a généré une exception
com.sun.facelets.FaceletException: Could not instantiate feature[compiler.ExpressionFactory]: com.sun.el.ExpressionFactoryImpl
	at com.sun.facelets.compiler.Compiler.featureInstance(Compiler.java:153)
	at com.sun.facelets.compiler.Compiler.createExpressionFactory(Compiler.java:142)
	at com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:193)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
	at com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
	at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
	at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)
	at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:662)
Merci d'avance.