Sun Java System Application Server Platform Edition 9.0 Update 1 发行说明

第 3 章 已知问题和限制

本节介绍有关 Sun Java System Application Server Platform Edition 9.0 Update 1 产品的已知问题和相应的解决方法。如果汇总说明未指明特定平台,则所有平台都可能出现此问题。本部分信息按以下内容进行组织:

管理

如果不存在 domain1package-appclient 脚本将不起作用。(ID 6171458)

默认情况下,在 $INSTALL/lib/package-appclient.xml 中有一个用于 domain1(由 asenv.conf 来指向)的 AS_ACC_CONFIG 变量的硬编码值。如果删除 domain1 并创建新域,将不会用新域名更新 AS_ACC_CONFIG 变量,从而导致 package-appclient 脚本失败。

解决方法

执行以下操作之一:

不支持启动带有附加 JMX 代理的 Application Server。(ID 6200011)

可以在 Application Server 上配置 J2SE 1.4.x, 5.0 或更高版本。J2SE 5.0 平台的完整功能是可以启动 JMX 代理。在服务器启动时,如果您明确设置了系统属性,此功能将被激活。

示例值包括:

name="com.sun.management.jmxremote" value="true"
name="com.sun.management.jmxremote.port" value="9999"
name="com.sun.management.jmxremote.authenticate" value="false"
name="com.sun.management.jmxremote.ssl" value="false"

在配置了 JMX 属性并启动服务器之后,将在 Application Server VM 中启动新的 jmx-connector 服务器。此过程的副作用是会对管理功能造成不利影响,并且 Application Server 管理 GUI 和 CLI 可能会产生异常结果。出现此问题的原因在于内置 jmx-connector 服务器与新的 jmx-connector 服务器之间存在一些冲突。

解决方法

如果使用 jconsole(或任何其他 JMX 兼容客户机),请考虑重新使用标准的 JMX Connector Server,它在 Application Server 启动时启动。

当服务器启动时,server.log 中将显示类似于以下所示的内容。您可以连接到其中指定的 JMXServiceURL,并在成功提供证书后执行相同的管理/配置操作,例如:

[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|javax.enterprise.
system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the 
JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/
rmi-jmx-connector]. This is where the remote administrative clients should 
connect using the JSR 160 JMX Connectors.|#]

有关更多信息,请参阅《Sun Java System Application Server 9.0 Update 1 Administration Guide》。

如果 JDK 路径中包含空格,则在停止服务器时会抛出 InvalidJvmOptionException (Windows) (ID 6475341)

如果将 Application Server 安装在路径中包含空格的某个位置,则在停止该实例时,您将会在日志中看到类似以下的消息。请注意,这种状况不会影响 Application Server 的功能。


InvalidJvmOptionException: Invalid Jvm Option Files/Java/jdk1.5.0_07/jre/lib/ext;
C:/Sun/AppServer/domains/domain1/lib/ext;C:/Sun/AppServer/javadb/lib. 
Option must start with -.

display-error-statistics 会生成负的统计信息

管理控制台 GUI 能够将实际的零 (0) 与统计信息不可用的状态 (N/A) 区分开。命令行界面当前显示负 1 (-1) 而不是 N/A。例如,以下 display-error-statics 命令输出显示 -1 而不是 N/A


# asadmin display-error-statistics
Please enter the admin user name>admin
Please enter the admin password>
Timestamp                               Severity  Warning 
---------------------------------------------------------
1143659837750(Mar 29, 2006 11:17:17 AM)     0        0       
1143656237750(Mar 29, 2006 10:17:17 AM)     0        0       
1143652637750(Mar 29, 2006 9:17:17 AM)      -1       -1      
1143649037750(Mar 29, 2006 8:17:17 AM)      -1       -1      
1143645437750(Mar 29, 2006 7:17:17 AM)      -1       -1      
---------------------------------------------------------
Command display-error-statistics executed successfully.

解决方法

使用管理控制台 GUI 可以显示错误统计信息。在以后的版本中将修复此问题。

应用程序客户机

本节介绍已知的应用程序客户机问题和相应的解决方法。

安装

本节介绍已知的安装/卸载问题和相应的解决方案。

在某些 Linux 系统上,单击“完成”按钮后安装关闭挂起。(5009728)

已在多种 Linux 系统上发现此问题。在 Java Desktop System 2 上最为常见,但目前在 RedHat 版本中也发现了此问题。

在安装程序的最后一个屏幕上单击“完成”按钮后,安装程序无法启动包含产品“关于”页面或产品注册页面的浏览器窗口,并且安装程序将无限期地挂起而不返回命令提示符。

解决方法

通过在启动安装程序的终端窗口中按 Ctrl+C 组合键来退出安装程序。执行此操作后,有时会启动包含产品“关于”页面或注册页面的浏览器窗口。如果不显示此窗口,请启动浏览器并输入以下 URL 以查看“关于”页面:

file://install_dir/docs/about.html

如果您还选择了用于注册产品的安装选项,请点击产品“关于”页面上提供的指向注册页面的链接。

在 Linux 上安装包装对象时,有时会出现 J2SE 检测和引导问题。(6172980)

启动 Linux 安装程序的 setup 可执行文件有时会挂起。包装程序不是解析 J2SE 位置并启动安装向导,而是挂起并返回以下消息:

Chcking available disk space....
Checking Java(TM) 2 Runtime Environment....
Extracting Java(TM) 2 Runtime Environment....
Deleting temporary files.....

仅在某些版本的 Linux 中发现了此问题。此问题好像与环境设置有关(特别是存在 JAVA_HOME 变量时)。

解决方案

要解决此问题,请执行以下步骤:

Procedure解决 Linux 上的引导问题

  1. 通过运行 unsetunsetenv(这取决于您的 shell)来取消 JAVA_HOME 变量的设置。

  2. 运行带有 -javahome 选项的 setup 来指定安装程序使用的 JAVA_HOME

生命周期管理

本节介绍已知的生命周期管理问题和相应的解决方法。

ejb-timer-service 属性 minimum-delivery-interval 设置为 9000 之后,如果尝试将 ejb-timer-service 属性 redelivery-interval-in-mills 设置为 7000,会导致 set 命令失败并显示以下错误消息:(ID 6193449)

[echo] Doing admin task set
[exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery-
Interval (7,000) should be greater than or equal to Minimum-delivery-
interval-in-millis (9,000)]
[exec] CLI137 Command set failed.

解决方法

使用这些属性的默认值,如下所示:

minimum-delivery-interval(default)=7000
redelivery-interval-in-millis(default)=5000

使用其他的值将导致产生错误。

Java Persistence API

本节列出了与 Java Persistence API 相关的已知问题和相应的解决方案。

查询编译器不会检查 Java Persistence 语言规范中定义的所有规则。

查询编译器不会检查 Java Persistence 语言的规范一章中定义的所有规则。特别是,它不检查以下各项:

无效的查询可能会进行编译,但可能会导致在运行时出现 SQLException。或者也可能出现以下情况:基础数据库比较宽松且支持 SQL,但在其他数据库上执行相同查询时会失败,并出现 SQLException

解决方法

手动验证上述条件。

在某些情况下,查询编译器会抛出误导性的错误消息,这是因为它在错误消息中提到了错误的令牌。(Glassfish ID 550)

有关更多信息,请参见 https://glassfish.dev.java.net/issues/show_bug.cgi?id=550

解决方法

手动验证查询中的哪些内容是错误的。

当前,无法在同一 EAR 文件中部署包含相同类的两个持久性单元。

解决方法

使用不同的类名称。

无法使用 persistence.xml 中的类元素明确地列出 MappedSuperclass。(Glassfish ID 558)

有关更多信息,请参见 https://glassfish.dev.java.net/issues/show_bug.cgi?id=558

解决方法

请勿明确地列出 MappedSuperclass

无法将空数据库值映射到图元。

解决方法

通过使用 Java 包装对象类型,映射到可为 null 的数据库列。

升级

本节介绍与升级和使用升级工具相关的已知问题和相应的解决方案。

从 Application Server Platform Edition 8 升级到 Application Server Platform Edition 9.0 Update 1 时,不会直接升级在自定义路径(而非 install_dir/domains 目录)中创建的域。(ID 6165528)

如果运行升级实用程序并将 install_dir 标识为源安装目录,升级进程只升级在 install_dir/domains 目录下创建的域。在其他位置创建的域不会被升级。

解决方法

启动升级进程前,将所有域目录从不同位置复制到 install_dir/domains 目录中。

在某些 Linux 系统中,单击“启动升级向导”按钮之后,执行“就地升级”的安装程序无法启动升级工具。(6207337)

此问题已在多个 Linux 系统上出现,是 Java Desktop System 2 上最常见的问题,但在 RedHat 版本中也发现了此问题。

在最终安装程序屏幕上单击“启动升级工具”按钮后,安装程序无法启动升级工具以完成升级过程,并且无限期挂起,而不会返回命令提示符。

解决方法

如果使用命令行安装模式来运行就地升级,将不会遇到此问题。

Procedure使用命令行安装模式

  1. 如果您以 GUI 模式运行就地升级并且遇到此问题,请通过在启动安装程序的终端窗口中按 Ctrl+C 组合键来退出安装程序。

  2. 使用以下命令从终端窗口启动升级工具:


    install_dir/bin/asupgrade --source install_dir/domains --target install_dir 
    --adminuser adminuser--adminpassword adminpassword --masterpassword changeit

    adminuseradminpassword 的值应与要升级的安装所使用的值匹配。

  3. 在升级工具完成升级过程后,您还可以启动浏览器并输入以下 URL 来查看“关于”页面:

    file://install_dir/docs/about.html

    如果您还选择了用于注册产品的安装选项,请点击产品“关于”页面上提供的指向注册页面的链接。

在 Windows 上运行升级工具时必须关闭 Application Server 文件

在 Windows 上运行升级工具时,您必须关闭要升级的安装中的所有文件。如果某个文件仍然打开,则会看到升级工具挂起。

Web 容器

本节介绍已知的 Web 容器问题和相应的解决办法。

无法编译资源受限服务器上的 JSP 页面。(ID 6184122)

已访问 JSP 页面但无法进行编译,并且服务器日志包含错误消息“无法执行命令”以及以下堆栈跟踪:

at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec
(Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.launch
(Execute.java:416) at org.apache.tools.ant.taskdefs.Execute.execute
(Execute.java:427) at org.apache.tools.ant.taskdefs.compilers.
DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.
java:448) at org.apache.tools.ant.taskdefs.compilers.JavacExternal.
execute(JavacExternal.java:81) at org.apache.tools.ant.taskdefs.Javac.
compile(Javac.java:842) at org.apache.tools.ant.taskdefs.Javac.execute
(Javac.java:682) at org.apache.jasper.compiler.Compiler.generateClass
(Compiler.java:396)

解决方法

将 JSP 编译开关 fork 设置为 false

可以通过以下两种方式之一来实现:

以上任何一种设置都将阻止 ant 产生用于 javac 编译的新进程。