Sun JavaTM System Application Server Platform Edition 8.2 是与 J2EE 1.4 平台兼容的服务器,它用于开发和部署 J2EE 应用程序和基于 Java 技术的 Web 服务。
本章包括:
Sun Java System Application Server Platform Edition 8.2 实现了很多新增功能:
与 J2EE 1.4 兼容。
(改进)利用 NetBeans 5 以及改进后的部署速度、运行时处理器占用量和服务器启动时间,开发者可以享受非凡的体验。NetBeans 5.0 将 Application Server 8.2 作为默认 J2EE 运行时包括在内。
(新增)卓越的吞吐性能以及更好的可伸缩性,可支持多核心/多线程体系结构。
(新增)支持 Fast Infoset 从而大大提高 Web 服务性能。
(新增)Application Server 8.2 新增对 Red Hat 4 和 My SQL 5 的支持。有关支持的操作系统和数据库驱动程序的完整列表,请参见本发行说明后面的硬件和软件要求。
(新增)Application Server 8.2 捆绑了部署就绪的 Derby 数据库,从而可以开发和部署端对端 J2EE 应用程序。
(新增)通过内置 JMS 资源适配器更加方便地与后端系统进行连接。Application Server 8.2 支持到 IBM MQ Series 和 Sun 的 MQ Server 的连接。
(更新)改进的 J2EE 1.4 Blueprint,其中包括将 Web 2.0 技术(例如 AJAX)与 Application Server 8.2 配合使用的演示。
JavaServer Faces 支持—通过在页面中汇编可重复使用的 UI 组件、将这些组件连接至数据源以及将客户机生成的事件与服务器端事件处理程序相连,开发者可以迅速构建 Web 应用程序。
改进的管理控制台—Application Server 8.2 管理控制台添加了新的查看和监测功能,例如 JNDI 名称空间浏览器、JDBC 连接验证、部署描述符查看器、错误日志查看器和改进的监视功能。
Web 服务安全性:容器消息安全性机制通过使用 OASIS WS-Security 标准的 X509 和用户名/密码配置文件,来实现 SOAP Web 服务调用的消息级别验证(例如 XML 数字签名和加密)。
JavaServer Pages 标准标记库 1.1 支持:该库封装了许多 JSP 应用程序通用的核心功能。
(更新)捆绑了 J2SE 5.0_06。
Sun Java System Application Server Platform Edition 可免费用于开发、部署和再分发。有兴趣进行再分发的客户应与 Sun OEM 销售 联系以获取再分发许可证。Sun 提供需额外付费的支持。如果要进行联系以获取有关 Java 2 Platform, Enterprise Edition 的许可证,请填写此表单。
本节列出了安装 Sun Java System Application Server Platform Edition 8.2 产品之前必须满足的要求。
下表列出了 Sun Java System Application Server Platform Edition 8.2 产品所支持的操作系统。
表 2–1 支持的操作系统
操作系统 |
最小内存 |
建议的内存 |
最小磁盘空间 |
建议的磁盘空间 |
JVM |
---|---|---|---|---|---|
Sun Solaris 9, 10 (SPARC) Solaris 9, 10 (x86) |
512 MB |
512 MB |
250 MB 可用空间 |
500 MB 可用空间 |
J2SE 1.4.2_10, J2SE 5_06 |
Sun Java Desktop System |
512 MB |
1 GB |
250 MB 可用空间 |
500 MB 可用空间 |
J2SE 1.4.2_10, J2SE 5_06 |
Redhat Enterprise Linux 3.0 U1, 4.0 |
512 MB |
1 GB |
250 MB 可用空间 |
500 MB 可用空间 |
J2SE 1.4.2_10, J2SE 5_06 |
Windows Server 2000 SP4+ Windows 2000 Advanced Server SP4+ Windows Server 2003 Windows XP Pro SP1+ |
1 GB |
2 GB |
500 MB 可用空间 |
1 GB 可用空间 |
J2SE 1.4.2_10, J2SE 5_06 |
在 UNIXTM 上,可以使用 uname 命令查看操作系统的版本。可以使用 df 命令查看磁盘空间。
在任一 Microsoft Windows 平台上运行 Application Server 时,必须使用 NTFS 文件系统,而不是 FAT 或 FAT32。
有关 Sun Java System Application Server Platform Edition 8.2 当前所需的修补程序列表,请访问 http://sunsolve.sun.com,然后选择 "Patches" 或 "Patch Portal"。单击 Sun Java System Application Server Platform Edition 8.2 链接。操作系统修补程序的要求更改并且 Java Enterprise System 组件的修补程序变得可用后,这些更新可在 SunSolve 上获得,最初的形式为建议的修补程序群集。
建议 Solaris 8, 9, 10(x86、SPARC)用户安装“Sun 推荐的修补程序群集”。此修补程序群集可以在 SunSolve Web 站点上的 "Recommended and Security Patches" 下找到。
要运行此产品的本机组件(包括安装程序),应安装以下软件包,该软件包不是标准 RedHat Enterprise Linux 3.0 分发的一部分:compat-libstdc++-7.3-2.96.118.i386.rpm。可以从 http://rpm.pbone.net/index.php3/stat/4/idpl/843376/com/compat-libstdc++-7.3-2.96.118.i386.rpm.html 下载该软件包。
Sun Java System Application Server Platform Edition 支持使用相应的 JDBC 驱动程序连接至任何 DBMS。有关经 Sun 测试发现适合构建与 J2EE 兼容的数据库配置的组件列表,请参见下表。
表 2–2 与 J2EE 兼容的 JDBC 驱动程序
JDBC 供应商 |
JDBC 驱动程序类型 |
支持的数据库服务器 |
---|---|---|
i-net Software |
类型 4 |
Oracle (R) 8.1.7, 9i, 9.2.0.3+, 10.1.x, 10.2.x Sybase ASE 12.5.2 Microsoft SQL Server 2000 4.0 Service Pack 1 |
IBM |
类型 2 |
IBM DB2 8.1 Service Pack 3+ |
Derby |
类型 4 |
Apache Derby 10.1.2.1 |
PointBase |
类型 4 |
PointBase Network Server 5.2 |
MySQL |
类型 4 |
5.x |
DataDirect |
类型 4 |
Oracle (R) 8.1.7, 9i, 9.2.0.3+, 10.1.x, 10.2.x Sybase ASE 12.5.2 Microsoft SQL Server IBM DB2 8.1 Service Pack 3+ |
Oracle |
类型 4、类型 2 |
Oracle (R) 9.2.0.3+, 10.1.x, 10.2.x |
本节介绍了有关使用与 Application Server 8.2 捆绑在一起的 Derby 数据库实现的说明。
Sun Java System Application Server 8.2 引入了两个用于启动和停止 Derby 网络服务器的新 asadmin 命令。
start-database 命令可用于启动 Derby 网络服务器实例:
start-database [--dbhost 0.0.0.0] [--dbport 1527] [--dbhome path/derby] |
主机的默认值是 0.0.0.0,这将允许 Derby 侦听 localhost 以及 IP/主机名接口。dbhome 属性值用于表示 Derby 数据库的驻留位置。默认的 path 是 <appserver_install_dir>/derby。
asadmin stop-database 命令用于关闭正在运行的 Derby 网络服务器实例:
stop-database [--dbhost 0.0.0.0] [--dbport 1527] |
Application Server 8.2 附带的 Derby 配置还包括若干有用的脚本,这些脚本可有助于您使用 Derby。可以在 <appserver_install_dir>/derby/frameworks/NetworkServer/bin 目录中使用以下脚本:
startNetworkServer.ksh/bat—用于启动网络服务器的脚本
stopNetworkServer.ksh/bat—用于停止网络服务器的脚本
ij.ksh/bat—交互式 JDBC 脚本工具
dblook.ksh/bat—用于查看数据库的所有或部分 DDL 的脚本
sysinfo.ksh/bat—用于显示有关 Derby 环境的版本化信息的脚本
NetworkServerControl.ksh/bat—为在 NetworkServerControl API 上执行命令提供方法的脚本
有关这些实用程序的更多信息,请参见 Derby 工具 和管理指南。
本示例介绍如何使用 Netbeans 5.0 捕获 Pointbase 中表的 DDL 并在 Derby 中创建相同的表。也可以使用 commander 工具和 unload database 命令来执行此操作:
./startcommander.sh Do you wish to create a new Database. (Yes (Y) or No (N))? [default: N]: Enter product to connect with: (Embedded (E) or Server (S))? [default: E]: e Enter driver to use? [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Enter database URL? [default: [jdbc:pointbase:embedded:sample]: Enter Username? [default: PBPUBLIC]: Enter Password? [default: PBPUBLIC]: PointBase Commander 5.2 ECF build 294 size restricted version EMBEDDED Interactive SQL command language. SunOS/5.9 (C) Copyright 2004 DataMirror Mobile Solutions, Inc. All rights reserved. Licensed to: Sun_customer_demo_use For commercial version contact PointBase at: pointbase.com PHONE: 1-877-238-8798 (US & CANADA) 1-408-961-1100 (International) WEBSITE: www.pointbase.com SQL>unload database sampledb.sql; SQL> unload database sampledb.sql; SQL> 13 Row(s) Unloaded. (PBPUBLIC.CUSTOMER_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.DISCOUNT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.MANUFACTURE_TBL) SQL> 11 Row(s) Unloaded. (PBPUBLIC.MICRO_MARKETS_TBL) SQL> 9 Row(s) Unloaded. (PBPUBLIC.OFFICE_TBL) SQL> 4 Row(s) Unloaded. (PBPUBLIC.OFFICE_TYPE_CODE_TBL) SQL> 15 Row(s) Unloaded. (PBPUBLIC.ORDER_TBL) SQL> 6 Row(s) Unloaded. (PBPUBLIC.PRODUCT_CODE_TBL) SQL> 30 Row(s) Unloaded. (PBPUBLIC.PRODUCT_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_DATA_TBL) SQL> 10 Row(s) Unloaded. (PBPUBLIC.SALES_REP_TBL) SQL> 52 Row(s) Unloaded. (PBPUBLIC.SALES_TAX_CODE_TBL) SQL> 12 Table(s) Unloaded. SQL> quit;
在上述示例中,unload database 命令的执行结果将被写入 sampledb.sql 文件。sampledb.sql 文件中包含创建必要的表和索引所需的所有 DDL。它还包含将数据插回到数据库中的 DML。通过 commander 命令 RUN 使用生成的脚本可以将数据导入到其他 Pointbase 数据库中。以下是有关生成的文件中的 INSERT 语句和相关数据的示例:
INSERT INTO "ADVENTURE"."CATEGORY" ( "CATID", "LOCALE", "NAME", "DESCRIPTION", "IMAGEURI" ) VALUES( ?, ?, ?, ?, ? ); { 'ISLAND ','en_US','Island Adventures','Experience an island / paradise in a way fit for your needs.','Island_Adventures.gif' 'JUNGLE ','en_US','Jungle Adventures','Experience a jungle / paradise in a way fit for your needs.','Jungle_Adventures.gif' 'MOUNTAIN ','en_US','Mountain Adventures','Experience an / elevated paradise with a view.','Mountain_Adventures.gif' 'ORBITAL ','en_US','Orbital Adventures','Experience a vacuum / paradise with a beautiful view and where no one can hear you scream.', / 'Space_Adventures.gif' 'WESTERN ','en_US','Western Adventures','Enjoy the Wild West. / ','Western_Adventures.gif' 'SOUTH_POLE ','en_US','South Pole Adventures','Experience a / frozen paradise in a way fit for your needs.','SouthPole_Adventures.gif' };
可以轻松地编辑通过 commander unload database 命令生成的文件,以使其仅包含 DDL(例如,编写用于处理 insert 语句的程序并不困难)。在简单测试中,我们可以对 Pointbase 样例数据库使用 unload database 命令,然后编辑生成的脚本,可做出如下更改:
删除所有 CREATE Table 语句末尾的短语 Organization Heap
删除 COMMIT 命令
将布尔变量 datatype 更改为 smallint
删除所有 INSERT 语句和相关数据
接下来,使用简单的 Ant 脚本执行使用 sql 目标的 DDL。最后,对 sun-appserv-samples 数据库重复执行相同的操作,并对生成的 SQL 文件做出如下更改:
对样例数据库做出所有上述更改
删除 create user 命令
删除 SET PATH 命令
将 Decimal 精度从 38 更改为最大 31
将 float 精度从 64 更改为最大 52
当前不支持 CREATE PROCEDURE 的 SPECIFIC 关键字
删除 GRANT 命令
要将 Pointbase Java 过程转换为使用 Derby,需要对 Java 代码和 CREATE PROCEDURE 语句进行一些更改。有关创建 Derby Java 过程的信息,请参见 Derby 参考手册。Derby 的下一发行版将支持布尔变量数据类型。
本节列出了 Sun Java System Application Server Platform Edition 8.2 管理控制台和快速入门指南所支持的浏览器。在 Application Server 上运行的应用程序不同,支持的浏览器也不同。
表 2–3 支持的浏览器
浏览器 |
版本 |
---|---|
Mozilla |
1.4, 1.5, 1.6, 1.7.x |
Netscape Navigator |
6.2, 7.0 |
Internet Explorer |
5.5 Service Pack 2, 6.0 |
Firefox |
1.x |
有关从 Application Server 的先前版本升级至 Sun Java System Application Server Platform Edition 8.2 的完整说明,请参阅《Sun Java System Application Server Platform Edition 8.2 Installation Guide》。
安装 Sun Java System Application Server 软件之前,必须满足以下附加要求。
空闲空间—临时目录必须具备至少 200 MB 的空闲空间以便安装 Sun Java System Application Server,以及 250 MB 的空闲空间以便安装 SDK。
使用卸载程序—如果需要从系统中删除 Application Server,请务必使用本软件附带的卸载程序。如果尝试使用其他方法,则在试图重新安装同一版本或安装新版本时将出现问题。
空闲端口—必须有七个空闲端口。
安装程序自动检测正在使用的端口,并建议将当前未使用的端口用作默认设置。默认情况下,用于 HTTP 的初始默认端口号为 8080;用于 HTTPS 的初始默认端口号为 8181;用于管理服务器的初始默认端口号为 4848。
安装程序将检测已用端口并为您分配其他两个端口:Sun JavaTM System Message Queue(默认情况下,端口号为 7676)和 IIOP(默认情况下,用于 IIOP 的端口号为 3700,而用于 IIOP/SSL 的端口号为 3820 和 3890)。如果这些默认端口号正在使用,安装程序将从动态端口范围内指定一个随机端口号(请注意,它不一定是下一个可用的端口号)。
启动以前安装的服务器 (UNIX)—除非要替换以前安装的服务器,否则应在开始安装 Sun Java System Application Server 8.2 之前启动以前安装的服务器。这样,安装程序才能检测到已使用的端口,从而避免再分配它们用于其他用途。
替换以前安装的服务器 (UNIX)—如果已安装了旧版本的 Sun Java System Application Server,并希望将其替换为当前的 Application Server,则在安装新服务器之前应先停止旧服务器。
关闭防火墙 (Microsoft Windows)—在安装 Sun Java System Application Server 软件之前,必须停止所有防火墙软件,因为默认情况下某些防火墙软件会禁用所有端口。安装程序必须能够准确确定哪些端口可用。
有关兼容性的详细信息,请参见《Sun Java System Application Server Platform Edition 8.2 Upgrade and Migration Guide》。
如果 where 子句包含 OR 运算符和单值型 cmr 导航,则 EJBQL 查询可能不会包含所有匹配的结果。
“新建 Web 服务向导”中的面板不完整。
- asadmin create-domain --help 命令返回不正确的用法,并且记录了无效的选项 (--admin.jmxport)。
无法通过 java-method 在 client-side message-security-binding 元素中指定目标消息。
使用 AMX API 时,从服务器中删除 J2EE 应用程序引用将会删除该应用程序,但仍然可以访问该应用程序。
AS 8.2 PE/EE:使用 PlatformMBeanServer(如果有)。
DOCS:java.sql.statement.getConnection() 不符合池连接的 javadoc 规范。
即使在停止并删除后,域仍没有释放端口 8080。
首次创建 JMS 连接工厂时无法保存事务支持值。
对于 Application Server 8.1 UR2 PE,根本无法在 Windows 2000 上运行 asant;返回“命令太长”错误。
丰富客户机 RMI-IIOP 故障转移测试失败。
在 8.2 中支持 Grizzly ARA 包。
未更新 Application Server 8.1 虚拟服务器访问日志的位置。
JMS 的通用 RA 需要与 AS 8.2 集成。
XA 事务日志的磁盘 I/O 太高。
通过解除与控制 TTY 的关联,使 Application Server 8.x 本地启动器可以使用 Bourne shell。
S1AS 7.0/SJAS7.1 : EJBC/RMIC 生成不具有全限定包名称的 STUB/Skel。
服务器必须拒绝带有双 Content-Length 标头的请求。
asadmin create-domain --help 生成一些 CVS 合并字符,且出现乱码。
当下一用户使用同一连接时,setAutoCommit 仍将设置为 false。
取消部署:取消注册 mbean 时发生错误。
Servlet 容器 UTF-8 URI 映射问题。
如果在安装路径中使用空格,则 Deploytool 将无法工作。
如果采用基于文件的非 root 用户安装,则部署命令将失败。
在 Windows 中部署会挂起。
升级后无法访问已部署的应用程序。
需要改进部署性能。
重新部署有时会失败,并显示错误消息“运行 EJBC 时发生错误 -- EJB 编译器发生致命错误”。
取消部署后,没有释放所有文件。
WAR 文件的重新部署(远程部署创建器)失败。
在部署/取消部署方案中发生 AS8102 内存泄漏(来自 6324399 EJBClassLoader 的 SubCR)。
Sun Java System Application Server 8.2 支持 J2EE 1.4 和 Java EE 5 平台。下表介绍了 J2EE 1.4 平台上可用的增强 API。
表 2–4 J2EE 1.4 平台上的主要 API 更改
API |
说明 |
---|---|
组件 |
|
应用程序和应用程序客户机 |
通过 XML 模式实现标准部署描述符 |
Enterprise JavaBeans (EJB) 2.1 |
计时器服务和 EJB Web 服务端点 |
Java Servlet 2.4 |
Web 服务端点过滤器 |
JavaServer Pages (JSP) 2.0 体系结构 |
表达式语言和标记库 |
J2EE Connector Architecture 1.5 |
内嵌资源适配器和 Java 消息服务 (JMS) 插件化 |
Web 服务 |
|
Java Web Services Developer Pack 1.5 |
用于构建、测试和部署 XML 应用程序、Web 服务和 Web 应用程序的集成工具包 |
用于基于 XML 的远程过程调用的 Java API (JAX-RPC) 1.1 |
用于 WSDL 和 Java 技术的映射以及对开发 Web 服务客户机和端点的支持 |
WS-I 基本配置文件 1.0 |
使用 WSDL 和 SOAP 启用互操作性的元素 |
Java 的带附件的 SOAP API (SAAJ) 1.2 |
用于基于 SOAP 的消息传送的 API;帮助创建带有附件的 SOAP 消息 |
用于 XML 注册表 的 Java API (JAXR) 1.0 |
统一且标准的 API,用于访问 XML 注册表,例如用于通用说明、发现和集成(UDDI 和 ebXML)的 XML 注册表 |
其他 |
|
J2EE Deployment 1.1 |
启用部署 J2EE 组件和应用程序的标准 API |
J2EE Management 1.0 |
管理 J2EE 平台的信息模型的定义 |
Java Management Extensions (JMX) 1.2 |
标准管理 API |
Java 容器授权合同 (JACC) 1.0 |
J2EE Application Server 和授权策略提供器之间的安全性合同的定义 |
用于 XML 处理的 Java API (JAXP) 1.2 |
应用程序可以用来解析和变换 XML 文档的 API;还添加了对处理 XML 模式的支持 |
JMS 1.1 |
一种消息传送标准,使 J2EE 应用程序组件可以创建、发送、接收和读取消息;还添加了对用于队列和主题的统一 API 的支持 |
JavaMail 1.3 |
一组建立邮件系统模型的抽象类;还包括对 API 的细微更新 |
Sun Java System Application Server 8.2 支持将 J2SE 1.4.2 和 J2SE 5.0 作为基础 JVM。如果要从一个 J2SE 版本切换到另一个版本,请执行以下常规步骤。(Windows 和 Unix)
下载 J2SE SDK(而非 JRE)并将其安装到系统中(如果尚未这样做)。
可以从 http://java.sun.com/j2se 下载 J2SE SDK。
完全停止 Application Server。
您可以使用以下命令行:
as-install/bin/asadmin stop-domain |
或者,也可以使用管理控制台 GUI:
编辑 install_dir/config/asenv.conf 文件(在 Windows 上为 asenv.bat),将 AS_JAVA 的值更改为指向新的 J2SE 主目录。
编辑 as-install/samples/common.properties 文件,将以 com.sun.aas.javaRoot... 开头的行更改为引用新的 J2SE 主目录。
重新启动 Application Server。
as-install/bin/asadmin start-domain |
如果是从捆绑版本 (JDK 1.4.2_06) 以前的 JDK 版本进行升级,则仅使用上述步骤无法升级到 J2SE 5.0 或更高版本。具体而言,除了上述步骤,您还必须删除所有现有的域,然后重新创建它们。