Desplegar aplicaciones JSF 1.2 en JBoss 6 EAP

por | junio 12, 2015

JBoss 6 EAP usa por default la implementación de JSF 2.0, y si desplegamos un proyecto antiguo que necesite la versión de JSF 1.2 el siguiente error se desplegará:

Caused by: java.lang.NoSuchMethodException: 
org.jboss.as.weld.webtier.jsf.WeldApplicationFactory.<init>()

Esto ocurre porque JBoss está tratando de usar la implementación por defecto que viene en esta versión, JSF 2.0.

Para que JBoss utilice la implementación de JSF 1.2 hay que modificar los siguientes archivos:

  • ../modules/org/jboss/as/weld/main/module.xml
  • ../modules/org/jboss/weld/core/main/module.xml

Y en el módulo javax.faces.api debemos indicarle la versión 1.2, por lo que en ambos archivos el módulo faces.api quedará de la siguiente manera:

<module name="javax.faces.api" slot="1.2"/>

Y por último en nuestro archivo web.xml tenemos que agregar la siguiente configuración:

<context-param>
        <param-name>org.jboss.jbossfaces.JSF_CONFIG_NAME</param-name>
        <param-value>Mojarra-1.2</param-value>
</context-param>

Espero les sea de utilidad.

EOF