按照惯例,我们将首先提供关于整个 WebSphere® 社区的一些重要新闻:
- WebSphere 品牌正在庆祝其 10 周年纪念!请参见 WebSphere Anniversary 页面,以了解 WebSphere 产品如何成为了全世界的 SOA 的中间件基础。
- 我们非常自豪地宣布 IBM WebSphere Application Server V7 已于 2008 年 9 月 26 日正式发布!当然,对于该最新版本,存在若干新资源可帮助您开始使用它:
- IBM Education Assistant Modules for WebSphere Application Server V7 是一个极好的起点。
- 请参见 WebSphere Application Server 产品信息页面以了解如何获得 WebSphere Application Server V7。
- 请参见 WebSphere Application Server V7 路线图以获得临时修复、维护信息和其他类型的支持材料和信息。
- 如果您使用 WebSphere Portal,您将希望查看 WebSphere Portal Security 功能页面以了解某些最新的重要安全修复。您还可以在这里了解到有关保护 WebSphere Portal 环境的更多信息。
- “绿化”是我们为了保护地球的环境而全力以赴的追求。IBM 有一个新的案例研究红皮书,其中介绍了如何采用智能的 SOA 方法实现绿色解决方案。
- 可在 alphaWorks 上获得的新的 用于 Java™ 的性能分析工具能够帮助您查找正在约束资源的线程。此工具当前可用于 Windows®。
- 如果您希望了解有关新功能的最新信息,请参见许多 IBM 产品的特色文档列表。您还可以为最喜欢的产品订阅主动电子邮件,以便在新信息可用时洞悉先机。
继续关注与支持相关的各个网站以及本专栏,以获得有关我们所碰到的其他工具的新闻。
接下来让我们继续今天主要的主题……
提出正确的问题
IBM WebSphere Application Server Community Edition 是一个轻量级应用程序服务器,旨在通过提供可方便快捷地下载并免费可用的技术,从而提高您的开发和部署工作的速度。WebSphere Application Server Community Edition V2.1(以下称为 Community Edition)构建在 Apache Geronimo 的基础上,其中组合了一些最佳的开放源代码技术,例如 Apache Tomcat、OpenEJB、Apache ActiveMQ 和 Apache Derby。
自从 Community Edition 发布以来,成千上万的用户快速采用 Community Edition 已取得极大的成功,只遇到了极少的困难。如果您的确遇到了开始使用 Community Edition 的困难,提出这里列出的其中某个问题很可能会帮助您解决问题,这样您就能继续向您的开发目标迈进。如果您还没有开始使用 Community Edition,可以使用这里的问题列表作为检查表,以便您能够避免常见错误,并立即充分利用 Community Edition:
- 您是否满足系统要求?
- 您是否在使用建议的和受支持的 Java SDK?
- Java Runtime Environment 的位置是否已正确设置?
- 您是否拥有足够的安装权限?
- 是否安装了所有的依赖包(仅针对 Linux)?
- 安装程序是否拥有执行权限?
- 您是否在使用正确的 URL 访问管理控制台?
- 您是否更改了管理控制台的缺省用户名和密码?
- 应用程序服务器是否已成功启动?
- 您是否拥有网络连接?
- 您是否能够使用主机系统的短名称访问服务器?
- 部署计划中的资源引用的定义是否正确?
- 您是否在生产中使用逆向类加载?
- 您是否验证了类依赖项?
- 如果仍然遇到问题该怎么办?
下面是对这些问题的回答:
-
您是否满足系统要求?
在安装 WebSphere Application Server Community Edition 之前,请检查详细的系统要求以确认您的系统满足最低内存(不包括 JDK 为 150 MB,否则为 256 MB RAM)、操作系统、JVM (IBM SE 5) 和其他要求。该信息还描述了建议的、兼容的和不受支持的配置。
-
您是否在使用建议的和受支持的 Java SDK?
许多安装和运行时问题都发生在使用 Community Edition 不支持的 Java™ SDK 的时候。虽然 Community Edition 可以在多种不同的 Java Runtime Environment (JRE) 中运行,但是建议的 JRE 仅有两种:IBM Java 5(32 位)和 IBM Java 5(64 位)。要验证您是否在使用建议的 JRE 之一,请确保 java 命令在您的 PATH 上,并从 Shell 运行以下命令:
<command shell prompt> java -fullversion
例如,如果您在使用 IBM JRE 1.5,则输出将类似如下:
J2RE 1.5.0 IBM Windows 32 build pwi32devifx-20071025 (SR6b)
有关更多信息,请参见详细的系统要求。
-
Java Runtime Environment 的位置设置是否正确?
Community Edition 使用 setenv.bat (Windows) 或 etenv.sh (UNIX®) 命令设置其 JRE 位置,这些命令位于 <WAS_CE_HOME>/bin 目录中。这些命令在 WASCE_JAVA_HOME 环境变量中设置 JRE 的位置。请确认 setenv 脚本将 WASCE_JAVA_HOME 环境变量设置为您安装 JRE 的位置。
-
您是否拥有足够的安装权限?
使用拥有安装软件的足够权限的用户名登录到系统。在 Windows 上,您必须使用管理员 ID,或者使用某个属于 Administrator 组的用户。在 Linux® 上,可以使用某个有权读取/写入/执行安装介质、JRE 目录、目标目录和 /var/log 的用户名。
-
是否安装了所有的依赖包(仅针对 Linux)?
每种 Linux 平台包含了 Community Edition 所依赖的不同包。有些 Linux 分发版缺省地安装这些包,而其他则不然。在 Linux 上安装 Community Edition 之前,确保安装所有的依赖包。您将找到可用于以下 Linux 平台的依赖包列表:
- Ubuntu
- openSUSE
- 基于 Red Hat 的分发版。
-
安装程序是否拥有执行权限?
Community Edition 安装程序的名称在 Windows 和 UNIX 平台上是不同的:
- 在 Windows 上为:wasce_setup-version-win.exe
- 在 UNIX 上为:wasce_setup-version-unix.bin
在 UNIX 平台上,安装程序 wasce_setup-version-unix.bin 必须拥有执行权限才能安装 Community Edition。取决于您使用的 UNIX 平台,您也许能够从桌面检查和设置文件权限。如果您确实能够这样做,可以执行以下步骤:
- 打开终端窗口。
- 确保您拥有“root”权限。
- 切换到您下载 Community Edition 包的目录。
- 在安装程序上设置执行权限:
<command shell prompt> chmod 755 wasce_setup-version-unix.bin
-
您是否在使用正确的 URL 访问管理控制台?
该应用程序服务器的管理控制台可以在安全和不安全的 HTTP 协议之上通过 Web 浏览器进行访问。要避免遇到诸如“HTTP 404:page not found”之类的错误,您必须确保使用正确的 URL。缺省的 URL 为:
对于不安全协议: http://<hostname>:8080/console
对于 SSL: https://<hostname>:8443/console
其中 <hostname> 是运行应用程序服务器的系统。通过更改 <WAS_CE_HOME>/var/config/config-substitutions.properties 文件中的 HTTPPort 和 HTTPSPort 属性,您可以配置不同的端口号。例如:
HTTPPort=8080
HTTPSPort=8443
当您成功连接到管理控制台时,将会看到如图 1 所示的面板。
图 1. 管理控制台
-
您是否更改了管理控制台的缺省用户名和密码?
当您安装 Community Edition 时,将会设置缺省的管理用户名和密码以授予访问管理控制台的权限。缺省用户名为“system”,缺省密码为“manager”。请更改管理密码以帮助保护系统的安全:
- 在 Console Navigation 中,在 Security 下面,单击 Users and Groups。
- 在 Console Realm Users 下面,单击对应于缺省用户 system 的 Edit。
- 输入并确认新密码。
务必要记住,在缺省情况下,Community Edition 在文件系统上存储用户和组信息。有关更多信息,请参阅 Modifying the Default Server Security Realm。
-
应用程序服务器是否已成功启动?
管理控制台依赖其他模块才能成功运行。请在启动控制台之前确保那些模块已经启动。您可以从控制台应用程序的 EAR Portlet 中查看依赖模块的完整列表(图 2)。控制台 EAR 文件名为 org.apache.geronimo.plugins/console-tomcat/<version>/car,Parent Components 列中列出了管理控制台所依赖的组件。
图 2. 依赖模块列表
请按照以下步骤启动服务器:
- 打开终端窗口。
- 将目录切换到 <WAS_CE_HOME>/bin。
- 输入命令 startup.bat (Windows) 或 startup.sh (UNIX)。
当服务器成功启动后,输出应该与图 3 所示类似。
图 3. 成功的服务器启动的输出
-
您是否拥有网络连接?
要确认您的网络连接,可以执行以下操作:
- 验证您可以解析主机名称。例如,对网络上的另一个主机执行 ping 命令。
- 如果浏览器和应用程序服务器之间存在防火墙,请确保将其配置为允许流量通过。例如,如果您在使用 SSL,请确保打开了 HTTPS 端口。
当连接被拒绝时,网络组件会无法启动。该服务器包含许多网络组件(例如 GBean JMXService),这些组件要在初始化期间访问网络。如果其中某个组件由于连接被拒绝而无法启动,则问题可能是由运行在服务器主机上的防火墙软件导致的。如果是这种情况,可以配置防火墙软件将本地主机视为受信任的主机。取决于所使用的软件,您可能需要多次指定受信任的主机,例如:
- 指定为 localhost
- 指定为其完全限定的主机名称
- 指定为其 TCP/IP 地址。
-
您是否能够使用主机系统的短名称访问服务器?
无论您如何指定目标服务器的主机名称,Apache Geronimo 都会在远程部署过程中使用非限定(短)主机名称。然后客户端使用此短名称启动文件传输,以便将您的应用程序发送到服务器系统。如果网络无法解析该名称,您将看到 java.net.UnknownHostException。
通过检查您是否能够使用短名称访问该主机系统,您可以避免此问题。例如,验证您能够使用短名称 Ping 该主机名称。如果接收到成功的响应,则名称解析服务能够将该短名称解析为某个 IP 地址。
-
部署计划中的资源引用的定义是否正确?
要部署或分发您的 Java EE 资产,您需要在部署计划中定义资源引用;资源的示例为数据库或 JMS。Community Edition 提供了用于常见 Java EE 资产类型的部署计划模板,其中包括:
有关模板和示例,请参见使用部署计划模板。
如果服务器无法将 Java EE 部署计划中的引用解析为服务器上的某个资源,则服务器将无法部署或分发您的资产。请确保您使用定义了该关系的部署计划来部署您的资产。一些提示:
- 如果您尝试不使用部署计划来部署资产,则会看到关于无法部署或分发您的资产的错误消息。要解决这些问题,可以创建一个部署计划,以便能够成功部署您的资产。
- 如果您正在使用部署计划并在部署过程中看到错误,请检查错误消息和日志以确定哪些资源无法解析。然后通过纠正部署计划中的资源引用来解决问题。
- 确保资源引用的配置标识符与资源的配置标识符匹配。
- 使用单字节字符集来命名配置标识符;Apache Geronimo 中存在一个已知的问题,此问题会在您使用双字节字符集(例如中文)时导致问题。
-
您是否在生产中使用逆向类加载?
逆向类加载对于问题确定和测试非常有用,它允许您覆盖缺省 Java EE 类加载器层次结构,以便先于父类搜索到您的模块的类库。如果计划在生产中使用逆向类加载,务必要保持谨慎,因为它影响所有类,并且会在将您的模块中构造的对象传递给父类进行处理时导致冲突。在生产系统中,您应该改为使用隐藏类,并且仅指定可以无冲突地使用的类。
有关类路径的更多信息,请参见 Community Edition V2.1 文档中的管理类路径。
-
您是否验证了类依赖项?
如果您看到以下任何异常:
- java.lang.ClassNotFoundException
- java.lang.ClassCastException
则您的模块所依赖的包可能未在服务器的存储库中定义和存储。服务器使用 Apache Maven 项目所提倡的相同目录结构和命名约定在存储库中保存公共 Java 库。如果您的 Java EE 资产依赖某个还未在存储库中的库,您必须更新存储库以包括新库,并在您的 Java EE 资产的部署计划中定义该依赖项。有关更多信息,请参见将 Java 库添加到服务器的存储库。
-
如果仍然遇到问题该怎么办?
如果在按照这些提示进行操作之后仍然遇到问题,可以尝试以下支持资源,以查找您的问题的解决办法和答案。
- 用于 WebSphere Application Server Community Edition 的 IBM Support Assistant 产品外接程序。
- 用于 IBM Developer Kits for Java 的 IBM Support Assistant 产品外接程序。
- WebSphere Application Server Community Edition 支持站点。
- WebSphere Application Server Community Edition 论坛和社区。
这些问题和答案为您提供了相关信息,可用于解决和避免在安装、配置和使用 WebSphere Application Server Community Edition V2.1 时遇到的某些最常见问题。此知识将为您在 Community Edition 上成功部署应用程序做出贡献。有关深入的安装和应用程序部署说明,请访问 WebSphere Application Server Community Edition 2.1 文档。(责任编辑:A6)