執行時期環境已知的問題和限制

當使用 Liberty 設定檔執行時期環境時,有一些適用的已知問題和限制。

最低的 Java 支援層次

任何符合 Java™ SE 6 或 Java SE 7 標準的執行時期環境,都支援 Liberty 設定檔,但是對於下列特定實作,必須符合所示的最低支援層次。
Java SE 6 執行時期環境
對於 IBM® 的 Java SDK,最低的支援層次是 6.0 (J9 2.6) SR 1。對於 Oracle 的 JDK,最低的支援層次是 Java 6 Update 26。
Java SE 7 執行時期環境
對於 IBM 的 Java SDK,最低的支援層次是 IBM Runtime Environment, Java Technology Edition 7.0.4.1。對於 Windows 和 Linux 上 Oracle 的 JDK,最低的支援層次是 Java SDK/JRE/JDK 7.0.17。對於 Mac OS X 上 Oracle 的 JDK,最低的支援層次是 Java SDK/JRE/JDK 7.0 Update 15。
[8.5.5.5 或更新版本]Java SE 8 執行時期環境
對於 IBM 的 Java SDK,最低的支援層次是 IBM SDK,Java Technology Edition 第 8 版。對於 Oracle 的 JDK,最低的支援層次是 Java 8 Update 25。

適用於分散式平台在分散式平台上,支援 32 位元或 64 位元的 Java。

適用於分散式平台如果是 Windows 和 Linux 系統,您可以使用 Oracle 的 JDK 或 IBM 的 JDK。 如果您在 Windows 或 Linux 上開發應用程式,且打算將這些應用程式部署在執行於 WebSphere Application Server 完整設定檔的伺服器中,您應該使用 IBM 的 JDK。 如果是 HP 系統和 Mac OS,請使用 Oracle 的 JDK。

適用於 IBM i 平台註: 如果要取得適用於 IBM iSeries® 的最低支援的 Java 層次,請安裝 IBM J2SE 6.0 32 位元 JVM(5761-JV1 選項 11 [8.5.5.2 或更新版本]或 5770-JV1 選項 11)或 IBM SE 6.0 64 位元(5761-JV1 選項 12 [8.5.5.2 或更新版本]或 5770-JV1 選項 12),另外也請安裝適用於 IBM i 6.1 的 Java PTF 群組 SF99562 層次 19(或更新的版本)或適用於 IBM i 7.1 的 SF99572 層次 8(或更新的版本)。

安裝目錄名稱和路徑不能包非 ASCII 字元

近來的 JVM 沒有充分支援在 -jar-javaagent 指令中使用非 ASCII 字元。 在您的安裝目錄名稱和路徑中,應該只用 ASCII 字元。

在執行時期變更 JDBC 資料來源可能會導致 JPA 失敗

如果沒有透過內容來指定資料庫字典類型,當建立第一個實體管理程式並建立資料庫連線時,OpenJPA 會偵測它並進行計算。 後續建立的所有實體管理程式都會使用這個資料庫字典類型。 如果應用程式執行時,JDBC 資料來源有了改變,實體管理程式 Factory 不會偵測這項變更,它會繼續利用舊字典來處理新的資料來源。 如果資料庫變更為不同的供應商,這可能導致失敗。

當您將資料庫變更為不同的供應商,請重新啟動應用程式。

在執行時期修改 dataSource、jdbcDriver、connectionManager 和 JDBC 供應商內容,可能會造成 JPA 失敗

如果您在伺服器執行時,更新 dataSourcejdbcDriverconnectionManager 或任何 JDBC 供應商內容清單(例如 properties.db2.jccproperties.oracle)的配置,您可能會見到 J2CA8040E 失敗。 這些失敗指出,不能將多個 dataSource 元素與單一 connectionManager 相關聯。 即使您的配置只將一個 connectionManager 關聯於 dataSource 元素,也會產生這些失敗。

當您更新任何這些 JDBC 資源的配置時,請重新啟動伺服器。

有賴於 getRealPath 傳回結果的應用程式必須部署為展開的應用程式,而不是 WAR 檔

Java EE 規格指出,如果是從 Web 保存檔 (WAR) 提供內容,getRealPath() 方法會傳回 null 值。 當您將 WAR 檔部署到 Liberty 設定檔中,設定檔不會將保存檔自動解壓縮到目錄結構中。 因此,應用程式可能會啟動失敗。 如果您的應用程式有賴於 getRealPath() 傳回的結果,您必須將應用程式部署為展開的 Web 應用程式,而不是 WAR 檔。 例如,您可以手動解壓縮 WAR 檔,將展開的應用程式複製到 dropins 目錄中。

WebSphere Application Server 完整設定檔 Script 無法使用Liberty 設定檔

您無法利用 WebSphere Application Server 完整設定檔bin 目錄下的任何 Script 來管理 Liberty 設定檔。

檔案集限制

下列限制適用於檔案集:
  • 檔案集不會遞迴探索基本目錄的子目錄。 比方說,不支援下列指示:
    <fileset id="testFileset" dir="\temp" includes="**\a.jar"/>
    <fileset id="testFileset" dir="\temp" includes="a\a.jar"/>
    <fileset id="testFileset" dir="\temp" includes="*\a.jar"/>
    <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>

置換 Java SDK 的類別

Liberty 設定檔所支援的某些 Java EE 6 技術需要 Java SE 6 所提供版本較新的 API。 JAX-WS、JAXB 和 javax.annotation.Resource 註釋都是 Java 6 SDK 包含的類別比 Java EE 6 所需要還舊的範例。當利用 Java SDK 第 6 版針對這些 API 來編譯您的應用程式碼時,您必須使用 Liberty 設定檔提供的類別,不是 Java SDK 所提供的類別。 您必須採取下列動作之一:
  • 如果您利用 javac,從指令行進行建置,請利用 javac -endorseddirs 選項及 ${wlp.install.dir}/dev/specs 目錄中的 JAR 檔來編譯您的程式碼。
  • 如果您利用 Apache Ant 來建置,請利用 javac 作業的 <compilerarg> 子元素及 ${wlp.install.dir}/dev/specs 目錄中的 JAR 檔來編譯您的程式碼。 在建置 Script 中,請指定 -endorseddirs 選項及 ${wlp.install.dir}/dev/specs 目錄來作為個別的 <compilerarg> 元素。 例如:
    <javac srcdir="src" destdir="classes"/>
        <compilerarg value="-endorseddirs"/>
        <compilerarg value="${wlp.install.dir}/dev/specs"/>
    </javac>
  • 如果您利用 Apache Maven 來建置,請利用 Maven 編譯器外掛程式的 endorseddirs 元素及 ${wlp.install.dir}/dev/specs 目錄中的 JAR 檔來編譯您的程式碼。 例如:
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerArguments>
          <endorseddirs>${wlp.install.dir}/dev/specs</endorseddirs>
        </compilerArguments>
      </configuration>
    </plugin>
適用於 Windows 平台

當您取消發佈共用程式庫時,在伺服器停止之前,無法將它刪除

當您將共用程式庫從伺服器中取消發佈時,伺服器不會立即釋出程式庫 JAR 檔。 因此,作業系統不知道檔案已不在使用中,不會讓您刪除檔案。 當您接著停止伺服器時,就會釋出程式庫 JAR 檔,您可以將檔案刪除。

java:global 查閱限制

應用程式中以 java:global 查閱來定義的資源,只能用來存取部署在現行伺服器中的應用程式所宣告的名稱。

appSecurity-2.0 特性限制

appSecurity-2.0 特性適用的限制如下:
  • 對於 EJB 應用程式,ibm-ejb-jar-ext.xml 檔的延伸設定不支援 run-as-mode SYSTEM_IDENTITY。
  • getCallerIdentity API 不支援單態 Session Bean。
  • 角色名稱可以由 HttpServletRequest.isUserInRoleEJBContext.isCallerInRole API 或部署描述子中的元素來參照,無需事先利用 @DeclareRoles 註釋或部署描述子中的 <security-role/> 元素來宣告角色名稱。 不過,角色必須先宣告,才能在完整設定檔中使用。

應用程式未在內嵌的 Liberty 伺服器中啟動

確定已使用指向 libertyInstallDir/bin/tools/ws-javaagent.jar-javaagent JVM 引數,來啟動會啟動內嵌 Liberty 伺服器的 Java 程序。如果未使用 -javaagent JVM 引數,伺服器執行時期仍會啟動,但應用程式無法啟動,而且不會出現明顯的異常狀況。

[8.5.5.6 或更新版本]

WebSphere MQ 資源配接器和一般 JCA 支援的相關限制

您可以透過 wasJmsClient-1.1wasJmsClient-2.0 特性,或是透過一般 JCA 支援,在 WebSphere Application Server Liberty 設定檔內使用 WebSphere® MQ 資源配接器。

WebSphere MQ 資源配接器 7.5 版可以與 Liberty 設定檔 8.5.5 版及更新版本搭配使用。如果您想使用以 JMS 2.0 資源配接器為基礎的 WebSphere MQ 資源配接器 8.0 版,必須確定您使用的是相容於 JMS 2.0 資源配接器的 Liberty 設定檔最新版本。

附註:
  • 當使用 Liberty 設定檔 8.5.5.2 版時,wasJmsClient-1.1 特性必須與 IBM MQ 資源配接器 7.5.0.5 版或更新版本搭配使用。
  • 當使用 Liberty 設定檔 8.5.5.6 版,wasJmsClient-2.0 特性必須與 IBM MQ 資源配接器 8.0.0.3 版或更新版本搭配使用

如果要進一步瞭解 WebSphere MQ 資源配接器與 Liberty 設定檔之間的版本相容性資訊,請參閱參照:取得 WebSphere MQ 資源配接器

如果您使用一般 JCA 支援,適用的限制如下:
  • 如果要在 z/OS® 上執行 IBM® WebSphere MQ 資源配接器,必須使用 wasJmsClient-1.1wasJmsClient-2.0 特性。
  • 追蹤和記載功能沒有透過一般 JCA 整合在 Liberty 追蹤系統中。追蹤會寫入至個別的檔案,並且必須設定系統內容來加以啟用。啟用追蹤的程序,與針對「Java™™ 標準環境」配置 WebSphere MQ 類別以使用 JMS 追蹤機能的程序相同。 請參閱 Java 標準環境追蹤段落

"dropins" 目錄中的應用程式不可能版本化

對於位於 "dropins" 目錄中的應用程式,應用程式監視器會利用檔名和副檔名來判斷應用程式類型,以及產生應用程式 ID 和應用程式名稱。因此,不可能藉由檔名或副檔名,來指定應用程式的版本號碼。在正式作業環境中,不建議您使用 "dropins" 目錄。

「管理中心」特性的限制

adminCenter-1.0 特性適用的限制如下:
  • [8.5.5.2 或更新版本]使用 WebSphere Application Server 完整設定檔 產品(如 Network Deployment)所提供的 IBM Java 虛擬機器 (JVM),可能會導致瀏覽器不顯示 WebSphere Liberty Administrative Center ("管理中心")。 依預設,完整設定檔產品隨附的 IBM JVM,會指向僅隨附於完整設定檔產品的安全類別,而不會指向需要 Secure Sockets Layer (SSL) 之「管理中心」所需的安全類別。請使用支援 Liberty 設定檔產品和 SSL 的 JVM。
    [8.5.5.4 或更新版本]您可以從 Installation Manager 供應項目或 developerWorks,取得支援 Liberty 設定檔產品和 SSL 的 JVM:
    • 使用 Installation Manager 時,請先選取 Liberty 設定檔產品,然後再選取 WebSphere SDK for Liberty。使用 Installation Manager,安裝 Liberty 設定檔產品和軟體開發套件 (SDK)。WebSphere SDK for Liberty 包含所需的 Liberty 設定檔產品與 SSL 支援,且會提供 Java 用戶端 JConsole。
    • 前往 developerWorks 網站上的 http://www.ibm.com/developerworks/java/jdk/index.html,下載適合您作業系統的 IBM Java Development Kit (JDK)。developerWorks 網站不提供適用於所有作業系統的 JVM。舉例來說,若為 Windows 作業系統,您必須從 Eclipse 取得 JDK。
  • [8.5.5.4 或更新版本]如果伺服器已加入控制器中,則部署到該控制器的伺服器套件無法部署成功。

    將伺服器套件部署到控制器時,請只包裝尚未加入控制器中的伺服器。

    或者,如果伺服器已加入控制器中,在執行伺服器 package 指令之前,請先將 $WLP_INSTALL_DIR/usr/servers/server_name/resources/collective 目錄(含子目錄)移至一個暫存目錄,例如 /tmp。然後在建立伺服器套件之後,將 resources/collective 目錄(含子目錄)從暫存目錄移回至 $WLP_INSTALL_DIR/usr/servers/server_name

  • [8.5.5.4 或更新版本]從「管理中心」的「部署」工具,您無法使用遠端管理認證中的使用配置給每一部目標主機的連線方法和認證選項,將 Liberty 設定檔 8.5.5.3 或更舊版本的伺服器套件部署至已登錄的主機。伺服器套件必須支援 Liberty 設定檔 8.5.5.4 或更新版本。
  • [8.5.5.6 或更新版本]在「管理中心」的「探索」工具中,只會顯示伺服器、叢集和應用程式資源的標籤。不會顯示執行時期資源的標籤。如需標籤的相關資訊,請參閱設定 Liberty 資源的管理 meta 資料在管理中心中設定和檢視管理 meta 資料
  • [8.5.5.5 或更新版本]如果 JVM 沒有提供程序 CPU 統計資料,在「管理中心」之「監視器」視圖的「CPU 使用率」圖表中,其 CPU 使用率會顯示為 0%null%。如需此圖表的相關資訊,請參閱在「管理中心」中監視度量

Bean 驗證特性的限制

beanvalidation-1.0 特性適用的限制如下:
  • 不支援在 OSGi 應用程式內進行 Bean 驗證。
[8.5.5.6 或更新版本]beanValidation-1.1 特性存在下列限制:
  • 不支援在 OSGi 應用程式內進行 Bean 驗證。
  • validation.xml 檔中以 beanValidation-1.0 特性提供自訂 ConstraintValidatorFactory 實作的應用程式,不會對 Bean Validation 1.1 API 進行編譯。

動態快取特性限制

下列動態快取特性無法使用,或可用性受到限制:
  • 不支援快取抄寫。
  • 只有以隨機大小為基礎的收回技術,才支援高效能磁碟快取模式。
  • cachespec.xml 檔中,不支援 Web 服務用戶端和伺服器端快取及 Portlet 快取。
  • 不支援進行 SingleThreadModel Servlet 的 Servlet 快取。
  • 不支援只含 Enterprise JavaBeans (EJB) 的 JAR 檔利用內容檔來定義快取配置。
  • 限制資料堆快取大小只適用於 32 位元 Java 虛擬機器 (JVM)。

ejbLite-3.1 特性限制

ejbLite-3.1 特性適用的限制如下:
  • 不支援 3.0 版之前的 EJB 模組。這項限制也表示不支援連結和延伸規格使用 .xmi 檔案格式而非 .xml 檔案格式。
  • Session Bean 不會連結到 ejblocal 名稱空間,這表示 JNDI 查閱和 ejb-ref 連結名稱必須使用 java:globaljava:appjava:module 名稱。在 ibm-ejb-jar-bnd.xml 檔案中,會忽略 simple-binding-name 和介面 binding-name 元素。
  • 無法配置有狀態 Bean 的鈍化目錄。 檔案會取消於伺服器工作區。
[8.5.5.6 或更新版本]

eventLogging-1.0 特性限制

eventLogging-1.0 特性適用的限制如下:
  • 如果將 eventLogging-1.0 特性從正在執行的伺服器移除,會使得已部署的 Web 應用程式重新啟動。
[8.5.5.6 或更新版本]

jpa-2.1 特性限制

對於 jpa-2.1 特性,透過 CORBA/RMI-IIOP 進行的 JPA 實體交換,會要求通訊兩端參與者啟用相同的 JPA 特性層次。

jsp-2.2 特性限制

jsp-2.2 特性適用的限制如下:
  • 不支援 useInMemory 配置選項只將翻譯的 JSP 檔儲存在記憶體中。

monitor-1.0 特性限制

monitor-1.0 特性適用的限制如下:
  • 當從 server.xml 檔中移除這個特性時,您必須重新啟動伺服器,JAX-WS 應用程式才能夠運作。
[8.5.5.6 或更新版本]

requestTiming-1.0 特性限制

requestTiming-1.0 特性適用的限制如下:
  • 如果將 requestTiming-1.0 特性從正在執行的伺服器移除,會使得已部署的 Web 應用程式重新啟動。
  • requestTiming-1.0 特性啟動之後,已證明在以 DayTrader 應用程式進行測量時,對於最大可能的應用程式儲存區產量會帶來 8% 的影響。 您的應用程式所受的影響也許會更大或較小,但您應該知道,有時可能會有明顯的效能降低。

wmqJmsClient-1.1 特性限制

wmqJmsClient-1.1 特性適用的限制如下:
  • 您必須手動設定 Windows 環境變數中的 PATH 變數,來指向 WebSphere MQ 安裝 bin 目錄。 當應用程式使用 BINDING 連線模式時,您必須設定這個路徑。
  • WebSphere MQ 特性中,不包含適用於 Java 的 wmqJmsClient-1.1 類別(通常稱為 Base Java)。這包含在其他應用程式伺服器的資源配接器中,但在 Java Enterprise Edition 環境中,不建議用於 Base Java API。如需相關資訊,請參閱在 J2EE/JEE 環境中使用 WebSphere MQ Java 介面
  • wmqJmsClient-1.1 特性不支援 WebSphere MQ 資源配接器的 BINDINGS_THEN_CLIENT 傳輸類型。
  • 不包含用於 wmqJmsClient-1.1 特性的「進階傳訊安全 (AMS)」特性。
[8.5.5.6 或更新版本]

wmqJmsClient-2.0 特性限制

wmqJmsClient-2.0 特性適用的限制如下:
  • 您必須手動設定 Windows 環境變數中的 PATH 變數,來指向 WebSphere MQ 安裝 bin 目錄。 當應用程式使用 BINDING 連線模式時,您必須設定這個路徑。
  • WebSphere MQ 特性中,不包含適用於 Java 的 wmqJmsClient-2.0 類別(通常稱為 Base Java)。這包含在其他應用程式伺服器的資源配接器中,但在 Java Enterprise Edition 環境中,不建議用於 Base Java API。如需相關資訊,請參閱在 J2EE/JEE 環境中使用 WebSphere MQ Java 介面
  • wmqJmsClient-2.0 特性不支援 WebSphere MQ 資源配接器的 BINDINGS_THEN_CLIENT 傳輸類型。

concurrent-1.0 特性限制

[8.5.5.4 或更新版本]若為 concurrent-1.0 特性,適用的限制如下:

如果執行緒環境定義是 securityContext 類型,主旨中未使用 JAAS 登入模組來新增的任何自訂資訊將不會延伸。舉例來說,如果提交者的主旨含有 TAI 所新增的自訂「主體」,所延伸的主旨將不會包含這個自訂「主體」。

[8.5.5.6 或更新版本]

jacc-1.5 特性限制

對於 jacc-1.5 特性,會忽略下列配置:
  • 應用程式 ear 檔之 ibm-application-bnd.xml 檔或 ibm-application-bnd.xmi 檔中的授權資訊(authorizations 屬性的 users 和 groups 屬性)。
  • server.xml 檔的授權資訊(application-bnd 元素中 security-role 屬性的 user、group 和 special-subject 屬性)。

指示主題類型的圖示 參照主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_restrict
檔名:rwlp_restrict.html