Using MyFaces for Portlets deployed on eXo Platform
I tested MyFaces 1.2.7 with MyFaces Portlet Bridge 1.0.0 on eXo PC 2.0.5 and eXo WCM 1.0 and 1.2, all under JBoss AS 4.2.x. For WCM you need at least Beta 2, because of PORTLETBRIDGE-84. I suppose the same is true for CS, KS and other eXo suites that uses the eXo Portal.
Besides the portlet bridge jars (and MyFaces jars if you'll use it instead of Mojarra embebed in JBoss AS), you need commons-codec-1.3.jar and commons-digester-1.8.jar as part of your WAR package (that is copy then to WEB-INF/lib).
Remember eXo need two packaging customizations (which are requited whether you use JSF or not):
The web.xml display-name element shoud be exactly the same as the context name (usually the same as the war name).
eXo listener and servlet should be declared as part of your WAR package, so add this to web.xml:
<listener> <listener-class>org.exoplatform.services.portletcontainer.impl.servlet.PortletApplicationListener</listener-class> </listener> <servlet> <servlet-name>PortletWrapper</servlet-name> <servlet-class>org.exoplatform.services.portletcontainer.impl.servlet.ServletWrapper</servlet-class> </servlet> <servlet-mapping> <servlet-name>PortletWrapper</servlet-name> <url-pattern>/PortletWrapper</url-pattern> </servlet-mapping>
If you want to use MyFaces instead of Mojarra (or any other JSF 1.2 implementation which is not the one embebed by JBoss AS) add a context-param to web.xml:
<context-param> <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> <param-value>true</param-value> </context-param>
For the impatient, here's a simple application ready to run under eXo: todo-jsf.war. Sorry, the application messages are in Portuguese, I'm from Brazil.