[17.0.0.4 以及更新版本]

配置協力廠商 JavaServer Faces 2.2 實作

使用「Java Server Faces (JSF) 儲存器 2.2」特性,容許「環境定義和相依關係注入 (CDI)」整合與應用程式隨附的 JSF 提供者搭配運作。

開始之前

只有在您想使用的 JSF 提供者不同於內建 Liberty JSF 提供者時,才使用此特性。如果您想使用 Liberty 中的預設 JSF 提供者,請改用 jsf-2.2 特性。

關於這項作業

使用 Liberty JSF 儲存器,將任何 2.2.X 版 MyFaces 或 Mojarra JSF 實作包裝在應用程式內,並同時使用 Liberty CDI 整合。如果要將 Liberty 伺服器配置成讓應用程式與 JSF 2.2 搭配執行,請啟用 jsfContainer-2.2 特性,並將 JSF API 與實作包裝在應用程式內。

重要:
  • jsfContainer-2.2 特性無法與其他 JSF 特性(例如 jsf-2.2)搭配使用。
  • 如果要使用 JSF 儲存器,請將 JSF API javax.faces 類別和 JSF 實作包裝在應用程式內。程式不支援將 JSF API 和實作包裝在共用程式庫內。
  • 只有對應至 JSF 規格 2.2 版的 JSF API 和實作,才支援 jsfContainer-2.2 特性。JSF API 和實作的 MANIFEST.MF 必須定義 Specification-Version,並落在 [2.2,2.3] 版本範圍間。
  • 對於具有 jsfContainer-2.2 的 JSF @ManagedBeans,程式不支援使用 @Resource@EJB Bean 來注入物件。 請改用 CDI @Named Bean。

程序

  1. 更新 server.xml 檔,以啟用 jsfContainer-2.2 特性,如下列範例所示:
    <featureManager>
    	<feature>jsfContainer-2.2</feature>
    </featureManager>
  2. 將您想使用的 JSF 提供者的 JSF API 和實作,包裝在應用程式內。例如,.war(Web 保存檔)應用程式將 JSF 儲存器與 Mojarra 搭配使用,下列範例顯示其作法:
    /WEB-INF/lib/jsf-api-2.2.14.jar
    /WEB-INF/lib/jsf-impl-2.2.14.jar

    另外,應用程式可以將 Apache MyFaces 包裝在應用程式內的下列位置:

    /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

結果

已啟用「JSF 儲存器 2.2」特性,且會在執行時期載入至 Liberty 伺服器。這個特性使用包裝在應用程式內的 JSF API 和實作。

指示主題類型的圖示 作業主題

檔名:twlp_jsf22_implementations.html