运行时环境已知问题和限制

使用 Liberty 概要文件运行时环境时,有一些已知问题和限制。

支持的最低 Java 级别

此 Liberty 概要文件在任何符合 Java™ SE 6 或 Java SE 7 运行时环境中受支持,并且受限于针对下列特定实现显示的最低受支持级别。
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 运行时环境 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 V8。对于来自 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 数据源,那么实体管理器工厂就检测不到此更改,因此对新数据源执行的操作都将继续使用旧字典。如果将数据库更改为其他供应商,那么这可能会导致失败。

将数据库更改为其他供应商之后,请重新启动应用程序。

运行时修改 dataSource、jdbcDriver、connectionManager 和 JDBC 供应商属性可能会导致 JPA 失败

如果在服务器处于运行状态时更新 dataSourcejdbcDriverconnectionManager 或者任何 JDBC 供应商属性列表(例如,properties.db2.jccproperties.oracle)的配置,那么您可能会看到 J2CA8040E 失败。这些失败会说明不能将多个 dataSource 元素与单个 connectionManager 相关联。即使您的配置只将一个 connectionManagerdataSource 元素相关联,也会生成这些失败。

这些 JDBC 资源的配置只要发生更新,就应该重新启动服务器。

依赖于 getRealPath 所返回结果的应用程序必须部署为展开的应用程序(而不是 WAR 文件)

Java EE 规范说明如果是从 Web 归档 (WAR) 文件提供内容,那么 getRealPath() 方法会返回 null 值。将 WAR 文件部署到 Liberty 概要文件时,概要文件不会自动将归档文件解压到目录结构。因此,应用程序可能无法启动。如果应用程序依赖于 getRealPath() 所返回的结果,那么必须将应用程序部署为展开的 Web 应用程序(而不是 WAR 文件)。例如,您可以手动解压 WAR 文件并将展开的应用程序复制到 dropins 目录。

WebSphere Application Server 完整概要文件 脚本不能与 Liberty 概要文件配合使用

不能使用 WebSphere Application Server 完整概要文件bin 目录下的任何脚本来管理 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 V6 针对这些 API 编译应用程序代码时,需要使用 Liberty 概要文件提供的类,而不是 Java SDK 提供的类。必须执行下列其中一项操作:
  • 如果您正在使用 javac 从命令行进行构建,那么使用 javac -endorseddirs 选项以及 ${wlp.install.dir}/dev/specs 目录中的 JAR 文件来编译您的代码。
  • 如果您正在使用 Apache Ant 来进行构建,那么使用 javac 任务的 <compilerarg> 子元素以及 ${wlp.install.dir}/dev/specs 目录中的 JAR 文件来编译您的代码。在构建脚本中,将 -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 应用程序,run-as-mode SYSTEM_IDENTITY 在 ibm-ejb-jar-ext.xml 文件的扩展设置中不受支持。
  • 单独会话 Bean 不支持 getCallerIdentity API。
  • 角色名称可供 HttpServletRequest.isUserInRoleEJBContext.isCallerInRole API 或者部署描述符中的元素引用,而不先使用 @DeclareRoles 注释或者部署描述符中的 <security-role/> 元素来声明角色名称。但是,必须先声明角色,然后才能在完整概要文件中使用这些角色。

未在嵌入的 Liberty 服务器中启动应用程序

请确保使用指向 libertyInstallDir/bin/tools/ws-javaagent.jar 的 JVM 参数 -javaagent 启动了用于启动嵌入式 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 资源适配器 V7.5 与 Liberty 概要文件 V8.5.5 及更高版本配合使用。如果您想要使用基于 JMS 2.0 资源适配器的 WebSphere MQ 资源适配器 V8.0,那么必须确保您正在使用与 JMS 2.0 资源适配器兼容的最新 Liberty 概要文件版本。

注释:
  • 对于 Liberty 概要文件 V8.5.5.2,必须将 wasJmsClient-1.1 功能部件与 IBM MQ 资源适配器 V7.5.0.5 或更高版本配合使用。
  • 对于 Liberty 概要文件 V8.5.5.6,必须将 wasJmsClient-2.0 功能部件与 IBM MQ 资源适配器 V8.0.0.3 或更高版本配合使用。

要知道有关 WebSphere MQ 资源适配器与 Liberty 概要文件之间的版本兼容性的更多信息,请参阅 有关获取 WebSphere MQ 资源适配器的参考

如果正使用类属 JCA 支持,那么以下限制适用:
  • 要在 z/OS® 上运行 IBM® WebSphere MQ 资源适配器,必须使用 wasJmsClient-1.1wasJmsClient-2.0 功能部件。
  • 跟踪和日志记录未集成到使用通用 JCA 的 Liberty 跟踪系统中。跟踪将写至单独文件,并且必须通过设置系统属性来启用。启用跟踪的过程与为 Java™ 标准环境的 JMS 跟踪工具配置 WebSphere MQ 类的过程相同。请参阅 Java 标准环境跟踪一节。

不能对“dropins”目录中的应用程序进行版本控制

对于“dropins”目录中的应用程序,应用程序监视器使用文件名和文件扩展名来确定应用程序类型并生成应用程序标识和应用程序名称。因此,不能使用文件名或文件扩展名对应用程序指定版本号。建议不要在生产环境中使用“dropins”目录。

管理中心功能部件限制

对于 adminCenter-1.0 功能部件,将适用以下限制:
  • [8.5.5.2 或更高版本]使用 WebSphere Application Server 完整概要文件 产品(例如,Network Deployment)附带的 IBM Java 虚拟机 (JVM) 可能导致 WebSphere Liberty 管理中心(“管理中心”)不会显示在浏览器中。缺省情况下,完整概要文件产品附带的 IBM JVM 指向仅随完整概要文件产品提供的安全类,而不是 管理中心 所需的安全类,后者需要安全套接字层 (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 Web 站点上的 http://www.ibm.com/developerworks/java/jdk/index.html,并下载适用于您的操作系统的 IBM Java Development Kit (JDK)。developerWorks Web 站点没有适用于所有操作系统的 JVM。例如,您必须从 Eclipse 获取适用于 Windows 操作系统的 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 资源设置管理元数据在管理中心中设置和查看管理元数据
  • [8.5.5.5 或更高版本]管理中心的“监视器”视图的“CPU 使用率”图表对未提供进程 CPU 统计信息的 JVM 显示 0%null% CPU 使用率。有关该图表的更多信息,请参阅监视管理中心中的指标

Bean 验证功能部件限制

对于 beanvalidation-1.0 功能部件,存在下列限制:
  • 不支持在 OSGi 应用程序内部进行 Bean 验证。
[8.5.5.6 或更高版本]对于 beanValidation-1.1 功能部件,存在下列限制:
  • 不支持在 OSGi 应用程序内部进行 Bean 验证。
  • validation.xml 中为 beanValidation-1.0 功能部件提供定制 ConstraintValidatorFactory 实现的应用程序不会针对 Bean 验证 1.1 API 进行编译。

动态高速缓存功能部件限制

下列动态高速缓存功能部件不可用或者可用性有限:
  • 不支持高速缓存复制。
  • 在使用随机逐出和基于大小的逐出技术时,仅支持高性能磁盘高速缓存方式。
  • cachespec.xml 文件中不支持 Web Service 客户端和服务器端高速缓存以及 Portlet 高速缓存。
  • 不支持对 SingleThreadModel Servlet 进行 Servlet 高速缓存。
  • 只包含 Enterprise JavaBeans (EJB) 的 JAR 文件不支持使用属性文件来定义高速缓存配置。
  • 只能对 32 位 Java 虚拟机 (JVM) 限制堆高速缓存大小。

ejbLite-3.1 功能部件限制

对于 ejbLite-3.1 功能部件,存在下列限制:
  • 不支持低于 V3.0 的 EJB 模块。此限制也意味着使用 .xmi 文件格式(而不是 .xml 文件格式)的绑定和扩展不受支持。
  • 会话 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 功能部件,存在下列限制:
  • 不支持将转换的 JSP 文件仅存储在内存中的 useInMemory 配置选项。

monitor-1.0 功能部件限制

对于 monitor-1.0 功能部件,存在下列限制:
  • server.xml 文件中移除该功能部件之后,必须重新启动服务器以使 JAX-WS 应用程序正常运行。
[8.5.5.6 或更高版本]

requestTiming-1.0 功能部件限制

对于 requestTiming-1.0 功能部件,以下限制适用:
  • 从正在运行的服务器移除 requestTiming-1.0 功能部件会导致所部署 Web 应用程序重新启动。
  • 使用 DayTrader 应用程序进行度量时,显示已激活的 requestTiming-1.0 功能部件对可能的最大应用程序吞吐量的影响百分比为 8%。虽然对您的应用程序的影响可能高于或低于此比例,但您还是应注意某些性能下降可能是显而易见的。

wmqJmsClient-1.1 功能部件限制

对于 wmqJmsClient-1.1 功能部件,存在下列限制:
  • 在 Windows 环境变量中,必须将 PATH 变量手动设置为指向 WebSphere MQ 安装 bin 目录。当应用程序使用“绑定”连接方式时,必须设置此 PATH 变量。
  • wmqJmsClient-1.1 功能部件中不包括 WebSphere MQ Java 类(通称为“基本 Java”)。这包括在其他应用程序服务器的资源适配器中,但是建议不要将其用于 Java Enterprise Edition 环境中的基本 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 目录。当应用程序使用“绑定”连接方式时,必须设置此 PATH 变量。
  • wmqJmsClient-2.0 功能部件中未包括 WebSphere MQ Java 类(通称为“基本 Java”)。这包括在其他应用程序服务器的资源适配器中,但是建议不要将其用于 Java Enterprise Edition 环境中的基本 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 属性)。

用于指示主题类型的图标 参考主题

信息中心的条款和条件 | 反馈


时间戳记图标 最近一次更新时间: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=rwlp_restrict
文件名:rwlp_restrict.html