[17.0.0.4 and later]

Configuration d'implémentations JavaServer Faces 2.2 tierces

Utilisez la fonction JavaServer Faces (JSF) Container 2.2 pour permettre le fonctionnement de l'intégration de CDI (Contexts and Dependency Injection) avec un fournisseur JSF qui est regroupé dans une application.

Avant de commencer

Utilisez cette fonction uniquement si vous souhaitez un fournisseur JSF différent du fournisseur JSF Liberty intégré. Si vous souhaitez utiliser le fournisseur JSF par défaut à partir de Liberty, utilisez la fonction jsf-2.2 à la place.

Pourquoi et quand exécuter cette tâche

Utilisez le conteneur JSF Liberty pour conditionner n'importe quelle version 2.2.X de l'implémentation JSF MyFaces ou Mojarra dans une application et utilisez également les intégrations de CDI Liberty. Pour configurer un serveur Liberty afin qu'il exécute une application avec JSF 2.2, activez la fonction jsfContainer-2.2 et conditionnez l'API et l'implémentation JSF au sein de votre application.

Important :
  • Vous ne pouvez pas utiliser la fonction jsfContainer-2.2 avec d'autres fonctions JSF, par exemple, jsf-2.2.
  • Pour utiliser le conteneur JSF, conditionnez les classes javax.faces d'API JSF et une implémentation JSF au sein de l'application. Le programme ne prend pas en charge le conditionnement de l'API et de l'implémentation JSF dans une bibliothèque partagée.
  • La fonction jsfContainer-2.2 est prise en charge uniquement pour l'API et l'implémentation JSF qui correspondent à la version 2.2 de la spécification JSF. Le fichier MANIFEST.MF de l'API et de l'implémentation JSF doivent définir un paramètre Specification-Version entre les plages de versions [2.2,2.3).
  • Pour JSF @ManagedBeans avec la fonction jsfContainer-2.2, le programme ne prend pas en charge l'injection d'objets avec des beans @Resource ou @EJB. Utilisez les beans @Named de CDI à la place.

Procédure

  1. Mettez à jour le fichier server.xml pour activer la fonction jsfContainer-2.2, comme illustré dans l'exemple suivant :
    <featureManager>
    	<feature>jsfContainer-2.2</feature>
    </featureManager>
  2. Conditionnez l'API et l'implémentation JSF pour le fournisseur JSF que vous souhaitez utiliser dans votre application. Par exemple, une application .war (archive Web) qui utilise un conteneur JSF avec Mojarra peut s'afficher, comme dans l'exemple suivant :
    /WEB-INF/lib/jsf-api-2.2.14.jar
    /WEB-INF/lib/jsf-impl-2.2.14.jar

    Sinon, une application peut conditionner Apache MyFaces aux emplacements suivants dans une application :

    /WEB-INF/lib/commons-beanutils-1.8.3.jar    # dependency of myfaces
    /WEB-INF/lib/commons-collections-3.2.1.jar  # dependency of myfaces
    /WEB-INF/lib/commons-digester-1.8.jar       # dependency of myfaces
    /WEB-INF/lib/commons-logging-1.1.3.jar      # dependency of myfaces
    /WEB-INF/lib/persistence-2.1.jar            # dependency of myfaces when using @EJB
    /WEB-INF/lib/myfaces-api-2.2.12.jar
    /WEB-INF/lib/myfaces-impl-2.2.12.jar

Résultats

La fonction JSF Container 2.2 est activée et se charge dans le serveur Liberty lors de l'exécution. La fonction utilise l'API et l'implémentation JSF qui sont conditionnées dans l'application.

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_jsf22_implementations.html