I'm migrating a JSF 1.2 project, running in WAS7, to JSF2 with Myfaces 2.1.7 and Primefaces.
Until now, everything was more or less working, putting myfaces-bundle-2.1.7.jar and primefaces 3.3.RC1.jar in the WEB-INF/lib and changing to classloading order.
Now, I'm trying to get EL2.2 working : Are the corresponding classes part of the Myfaces Impl classes (in myfaces-bundle-2.1.7.jar, but with which specific configuration ?), or did I miss some specific library to add to the /WEB-INF/lib ?
Thanks for reading me ;)
EL 2.2 is not part of JSF 2.0. It's part of Servlet 3.0 which in turn is part of Java EE 6. But WebSphere 7 is a Java EE 5 container, not a Java EE 6 one. JSF 2.0 is part of Java EE 6 but backwards compatible with Servlet 2.5 / Java EE 5, that's probably where your confusion is coming from.
As said, WebSphere 7 is a Servlet 2.5 container and thus doesn't ship with EL 2.2, but with EL 2.1. Your best bet is to install an EL 2.1 implementation which supports the same enhancements (invoking methods with arguments) as in EL 2.2. There's only one: JBoss EL. To install it, just drop jboss-el.jar in webapp's /WEB-INF/lib
and add the following context parameter to your web.xml
to tell MyFaces to use it instead.
<context-param>
<param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>