[17.0.0.4 and later]

Configuración de implementaciones de terceros de JavaServer Faces 2.2

La característica JavaServer Faces (JSF) Container 2.2 se usa para que la integración de Contexts and Dependency Injection (CDI) funcione con un proveedor JSF empaquetado con una aplicación.

Antes de empezar

Utilice esta característica solo si desea un proveedor JSF diferente del proveedor JSF incorporado en Liberty. Si desea utilizar el proveedor JSF predeterminado de Liberty, utilice la característica jsf-2.2 en su lugar.

Acerca de esta tarea

Use el contenedor JSF de Liberty para empaquetar cualquier versión 2.2.X de las implementaciones JSF MyFaces o Mojarra dentro de una aplicación y usar también integraciones CDI de Liberty. Para configurar un servidor Liberty para que ejecute una aplicación con JSF 2.2, habilite la característica jsfContainer-2.2 y empaquete la implementación y el API JSF dentro de la aplicación.

Importante:
  • No se puede usar la característica jsfContainer-2.2 con otras características JSF como, por ejemplo, jsf-2.2.
  • Para utilizar el contenedor JSF, empaquete las clases del API JSF javax.faces y una implementación JSF dentro de la aplicación. El programa no soporta el empaquetado de la implementación y del API JSF en una biblioteca compartida.
  • La característica jsfContainer-2.2 solo está soportada para la implementación y el API JSF que corresponden a la versión 2.2 de la especificación JSF. El MANIFEST.MF de la implementación y API JSF tiene que definir una Specification-Version en el rango de versiones [2.2,2.3).
  • En JSF @ManagedBeans con jsfContainer-2.2, el programa no soporta la inyección de objetos con los beans @Resource o @EJB beans. Use los beans CDI @Named en su lugar.

Procedimiento

  1. Actualice el archivo server.xml para habilitar la característica jsfContainer-2.2 tal y como se muestra en el ejemplo siguiente:
    <featureManager>
    	<feature>jsfContainer-2.2</feature>
    </featureManager>
  2. Empaquete la implementación y el API JSF del proveedor JSF que desee usar en la aplicación. Por ejemplo, una aplicación .war (Web Archive) que use un contenedor JSF con Mojarra podría mostrar lo del ejemplo siguiente:
    /WEB-INF/lib/jsf-api-2.2.14.jar
    /WEB-INF/lib/jsf-impl-2.2.14.jar

    De forma alternativa, una aplicación puede empaquetar Apache MyFaces en las ubicaciones siguientes dentro de la aplicación:

    /WEB-INF/lib/commons-beanutils-1.8.3.jar    # dependencia de myfaces
    /WEB-INF/lib/commons-collections-3.2.1.jar    # dependencia de myfaces
    /WEB-INF/lib/commons-digester-1.8.jar    # dependencia de myfaces
    /WEB-INF/lib/commons-logging-1.1.3.jar    # dependencia de myfaces
    /WEB-INF/lib/persistence-2.1.jar            # dependencia de myfaces cuando se usa @EJB
    /WEB-INF/lib/myfaces-api-2.2.12.jar
    /WEB-INF/lib/myfaces-impl-2.2.12.jar

Resultados

La característica JSF Container 2.2 está habilitada y se carga en el servidor Liberty en tiempo de ejecución. La característica utiliza la implementación y el API JSF empaquetadas en la aplicación.

Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_jsf22_implementations.html