將 Liberty 配置成使用 JavaServer Faces 2.2

您可以將 Liberty 配置成使用 JavaServer Faces (JSF) 2.2 特性,以完整支援 JSF 2.2 規格。

關於這項作業

Liberty 的 JSF 實作是以 MyFaces 開放程式碼實作為基礎。如果要將 Liberty 伺服器配置成執行啟用 JSF 2.2 的應用程式,您必須設定 <jsf-2.2> 特性。

程序

更新 server.xml 檔,以新增 <jsf-2.2> 特性。 例如:
<featureManager>
	<feature>jsf-2.2</feature>
</featureManager>
重要:
使用 JavaServer Faces 2.2 時,考量下列事項:
  • 不像 JSF 2.0,JSF 2.2 特性並不會隱含載入 Bean 驗證特性。當您將應用程式從 JSF 2.0 移轉至 JSF 2.2 時,且您的應用程式使用 Bean 驗證,您也必須啟用 beanValidation-1.1 特性。
  • JSF 2.2 特性需要 servlet-3.1jsp-2.3timedexit-1.0, 和 el-3.0 特性。在 server.xml 檔中啟用 JSF 2.2 特性時,這每一項特性也都會啟用。
  • JSF 2.2 特性無法與 Java EE 6 特性搭配執行;例如,servlet-3.0jsp-2.2cdi-1.0
  • 您可以針對每一個伺服器實例,挑選 JSF 2.0 或 JSF 2.2 特性實作,但是您必須考量到任何的行為變更。如果必要的行為只有 JSF 2.2 特性才有,您必須使用 JSF 2.2 特性。如果現有的應用程式會因 JSF 2.2 特性中的行為變更,受到不利影響,請使用 JSF 2.0 特性,以保留該應用程式的現有行為。
  • 在相同的 Liberty 伺服器中,不可能同時使用 JSF 2.0 和 JSF 2.2 特性。如果同時配置這兩個特性,會產生錯誤:
    CWWKF0033E: 單態特性 jsf-2.0 和 jsf-2.2 不能同時載入。所配置的特性 jsf-2.0 和 jsf-2.2 含有一或多個造成衝突的特性。不支援您的配置;請更新 server.xml,以移除不相容的特性。
  • JSF 2.2 與舊版相容,例如:JSF 2.1 和 JSF 2.0;不過,請考量下列的例外事項:
    • 舊版 JSF 規格中的錯誤會抑制異常狀況,現在則會傳播到異常狀況處理程式。請閱讀 JSF 2.2 規格概觀一節中的「舊版相容性」。
    • 複合元件屬性 ELResolver 和複合電腦 meta 資料的規格已變更。請閱讀 JSF 2.2 規格概觀一節中的「舊版相容性」。

結果

JSF 2.2 特性已啟用,並在執行時期載入 Liberty 伺服器中。

下一步

如果要使用 FlowBuilder API 來建立含有 FlowBuilder 註釋的「流程」,則必須在受管理 Bean 或 Session Bean 類別內宣告相關的 CDI 生產者方法。為了確保 CDI 能正確管理類別,請將生產者方法類別定義成受管理 Bean(提供其一個範圍),或將 CDI bean-discovery-mode 設為 all。您可以在您 Web 保存檔的 beans.xml 檔中,將 CDI bean-discovery-mode 設為 all
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
	bean-discovery-mode="all">
</beans>

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



「時間戳記」圖示 前次更新: 2016 年 11 月 30 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_jsf22
檔名:twlp_config_jsf22.html