[17.0.0.4 and later]

配置第三方 JavaServer Faces 2.2 实现

通过使用 JavaServer 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 规范 V2.2 对应的 JSF API 和实现才支持 jsfContainer-2.2 功能部件。JSF API 和实现的 MANIFEST.MF 必须定义 [2.2,2.3) 版本范围内的 Specification-Version
  • 对于带有 jsfContainer-2.2 的 JSF @ManagedBean,程序不支持使用 @Resource@EJB Bean 来注入对象。请改为使用 CDI @Named Bean。

过程

  1. 更新 server.xml 文件,以启用 jsfContainer-2.2 功能部件,如以下示例所示:
    <featureManager>
    	<feature>jsfContainer-2.2</feature>
    </featureManager>
  2. 将所要使用的 JSF 提供者的 JSF API 和实现打包在应用程序中。例如,将 JSF 容器与 Mojarra 配合使用的 .war(Web 归档)应用程序可能如以下示例所示:
    /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