[ACCEPTED]-Class org.springframework.web.jsf.el.SpringBeanFacesELResolver must extend the type javax.el.ELResolver-facelets
From the spring documentation, you will see that for org.springframework.web.jsf.el.SpringBeanFacesELResolver:
delegates 13 to the Spring's 'business context' WebApplicationContext first, then 12 to the default resolver of the underlying 11 JSF implementation
and for org.springframework.web.jsf.DelegatingVariableResolver:
will 10 first delegate value lookups to the default 9 resolver of the underlying JSF implementation 8 and then to Spring's 'business context' WebApplicationContext
As 7 you can see, the behavior is very different. If 6 you don't care about order, you are fine, but 5 if you actually did intend to use org.springframework.web.jsf.el.SpringBeanFacesELResolver 4 then all you have to do is ensure the version 3 of el-api.jar in your dependencies is compatible 2 with your version of spring. For me, I 1 have this (in my maven pom):
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.0.5.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>el-api</artifactId> <version>6.0.32</version> <type>jar</type> <scope>provided</scope> </dependency>
This is possibly a ClassLoader configuration 13 issue. If the SpringBeanFacesELResolver's 12 parent class is from a different ClassLoader 11 to the one used by the JSF classes doing 10 the bootstrapping, the check to see if it 9 is an instance of ELResolver will fail.
Problems 8 like this can happen if you have a META-INF/faces-config.xml 7 in the global classpath, but I suppose there 6 could be other causes.
It would help if you 5 posted information on what container you 4 are using, the classloader policy for your 3 application and where you've placed any 2 third party libraries (such as the Facelets 1 and Spring libs).
To solve this type of problem you should 3 extend project with
javax prefix because
Class ELResolver is an
abstract class under 2
Here is code:
<application> <javax.el-resolver> org.springframework.web.jsf.el.SpringBeanFacesELResolver </javax.el-resolver> </application>
More information about ELResolver 1 class you can get by link.
Configure your Project facets. For run with 1 your local server
Please check the JAR files you are using 4 in application. Again the class paths set 3 in application. I think it is because of 2 the class conflicts in application class 1 paths.
Well my problem disappeared substituting 1 these lines by:
<!-- variable/property resolver registration --> <application> <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver> </application>
hope it helps!
Thanks #saadi90, from mvnrepository.com I found this and 1 it solved the problem:
<dependency> <groupId>org.glassfish.web</groupId> <artifactId>el-impl</artifactId> <version>2.2</version> </dependency>
More Related questions