[17.0.0.4 und höher]

JavaServer Faces 2.2-Implementierungen anderer Anbieter konfigurieren

Verwenden Sie das Feature JavaServer Faces (JSF) Container 2.2, damit die CDI-Integration (Contexts and Dependency Injection) mit einem JSF-Provider funktioniert, der in einer Anwendung gepackt ist.

Vorbereitende Schritte

Verwenden Sie diese Funktion nur, wenn Sie einen anderen JSF-Provider als den in Liberty integrierten JSF-Provider verwenden möchten. Wenn Sie den JSF-Standardprovider von Liberty verwenden möchten, verwenden Sie stattdessen das Feature jsf-2.2.

Informationen zu diesem Vorgang

Verwenden Sie den Liberty-JSF-Container, um eine beliebige Version 2.2.X der MyFaces- oder Mojarra-JSF-Implementierung in einer Anwendung zu packen und um zusätzlich die Liberty-CDI-Integrationen zu verwenden. Wenn Sie einen Liberty-Server konfigurieren, um eine Anwendung mit JSF 2.2 auszuführen, aktivieren Sie das Feature jsfContainer-2.2 und packen Sie die JSF-API und die Implementierung in Ihrer Anwendung.

Wichtig:
  • Sie können das Feature jsfContainer-2.2 nicht zusammen mit anderen JSF-Funktionen, wie z. B. jsf-2.2, verwenden.
  • Wenn Sie den JSF-Container verwenden möchten, packen Sie die JSF-API-Klassen javax.faces und eine JSF-Implementierung in der Anwendung. Das Programm unterstützt nicht das Packen der JSF-API und der Implementierung in eine gemeinsam genutzte Bibliothek.
  • Das Feature jsfContainer-2.2 wird nur für die JSF-API und die Implementierung unterstützt, die der JSF-Spezifikation der Version 2.2 entsprechen. Die Datei MANIFEST.MF der JSF-API und der Implementierung muss eine Specification-Version zwischen den Versionsbereichen [2.2,2.3) definieren.
  • Das Programm unterstützt für JSF-Beans des Typs @ManagedBeans mit jsfContainer-2.2 nicht die Injektion von Objekten mit @Resource- oder @EJB-Beans. Verwenden Sie stattdessen die CDI-Beans des Typs @Named.

Vorgehensweise

  1. Aktualisieren Sie die Datei server.xml, um das Feature jsfContainer-2.2, wie im folgenden Beispiel angezeigt, zu aktivieren.
    <featureManager>
    	<feature>jsfContainer-2.2</feature>
    </featureManager>
  2. Packen Sie die JSF-API und die Implementierung für den JSF-Provider, den Sie in Ihrer Anwendung verwenden möchten. Eine .war-Anwendung (Webarchiv), die beispielsweise einen JSF-Container mit Mojarra verwendet, wird möglicherweise wie im folgenden Beispiel angezeigt:
    /WEB-INF/lib/jsf-api-2.2.14.jar
    /WEB-INF/lib/jsf-impl-2.2.14.jar

    Alternativ kann eine Anwendung Apache MyFaces innerhalb der App an den folgenden Positionen packen:

    /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

Ergebnisse

Das Feature "JSF Container 2.2" ist aktiviert und wird zur Laufzeit in den Liberty-Server geladen. Das Feature verwendet die JSF-API-Implementierungen, die in der Anwendung gepackt sind.

Symbol das den Typ des Artikels anzeigt. Taskartikel

Dateiname: twlp_jsf22_implementations.html