Jakarta Commons Logging 的WebSphere Application Server 支持不会更改由 Jakarta Commons Logging 定义的接口。目前 WAS V6.1 中所支持的 Apache Commons Logging 的版本是1.0.3。
最佳实践: Jakarta Commons Logging 的缺省配置存储在 commons-logging.properties 文件中。要指定在应用程序中与 Jakarta Commons Logging 配合使用的工厂类,请提供位于 META-INF/services 目录中的文件 org.apache.commons.logging.LogFactory,该文件的第一行包含工厂类的名称。就像 JDK 1.3 及以上版本中定义的那样,这是 JAR 文件服务提供程序的配置机制。
要更好地理解 Jakarta Commons Logging,请参阅http://jakarta.apache.org/commons/ 以及 Java 记录的规范和公共基本事件的规范。
要了解如何在 WAS 6.1 中配置应用程序以使用 Jakarta Commons Logging,请参阅:http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/org.eclipse.jst.ws.axis.ui.doc.user/tasks/tsklwsdla.html。
· Apache Ant
Apache Ant 是一个基于 Java 的开放式源代码构建工具。Ant 现在几乎已经是任何 IDE 都集成的编译工具了。为了编译一大堆java 源代码文件,需要一次次的在命令行敲重复的命令,Ant 可以让您编写命令脚本,然后让 Ant 自动完成复杂的编译工作,类似于Makefile,但Ant 脚本是标准的 XML 格式,更容易编写和阅读。事实上,巧妙地使用 Ant,您可以让 Ant 自动完成编译,测试,输出文档,生成 Release 版本等一系列任务,使得整个项目流程自动化。由于 Ant 是基于 java 编写的,因此具有很好的跨平台性。它非常适合构建 Java 应用,同时也能被很好地用来构建其他的任务。其中一个重要的特性是您可以使用 Java 创建新的 Ant 任务来扩展产品的构建能力。目前 WAS V6.1 中所支持的 Apache Ant 的版本是1.6.5。
有关Apache Ant 的更多信息,请参阅http://ant.apache.org。
· Apache Derby/Cloudscape
Apache Derby 是一种高质量的、纯Java 的嵌入式关系数据库引擎,该项目是从 IBM 捐献给 Apache Software Foundation [ASF] 的一个基于 Java 的Cloudscape 关系数据库发展而来的。IBM Cloudscape 是开放源代码 Apache Derby 关系数据库的商业版本,以Derby 代码为基础。 Cloudscape 是一种基于 Java 的、具有全面事务支持能力的关系数据库技术。它是一种纯嵌入式数据库,基于文件系统,具有高度的可移植性,可以用在应用程序中,也可以作为更传统的客户机-服务器应用程序的数据库。它体积小,而且不需要数据库管理员;您只需编写应用程序。在需要时直接调用数据库,Cloudscape 就可以为您服务。
WebSphere Application Server V6.1.x 要求运行的 Cloudscape 的版本至少为 V10.1.x。(请注意,Cloudscape V10.1.x 包含 Derby 代码库)在Application Server V6.1.x 升级期间,迁移工具会自动升级由一些内部组件(例如,UDDI 注册中心)通过嵌入式框架访问的数据库实例。该工具还会尝试升级应用程序通过嵌入式框架访问的 Cloudscape 实例。必须验证这些后端数据库的迁移结果。
注:请勿将 Cloudscape V10.1.x 用作生产数据库。请仅将它用于开发和测试目的。
有关 Apache Derby 的更多信息,请参阅:
ohttp://db.apache.org/derby
ohttp://incubator.apache.org/projects/derby.html
此外在WebSphere Application Server Toolkit中用到的其它开源项目:
· JUnit
JUnit 是用于 Java 的开放式源代码单元测试框架。Junit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit 是一套框架,继承 TestCase 类,就可以用 Junit 进行自动测试了。在WebSphere Application Server Toolkit 中可以使用 JUnit 测试框架来编写并运行测试。目前 WAS V6.1 中所支持的 JUnit 的版本是3.8.1。有关 JUnit 的更多资源,请参阅http://www.junit.org。
下载 JUnit:http://download.eclipse.org/eclipse/downloads/。
3. WAS是否支持动态增加服务器,即在原业务系统不停机的情况下动态增加服务器?
答:
IBM WebSphere Application Server支持应用服务器的动态增加或去除,并且可以根据需要通过自动复制应用程序到新增群集成员来响应增长的企业应用程序的使用。这让您可以在群集上部署应用程序而不是在单个节点上部署,且无需考虑工作量。
WebSphere Application Server能够在不中断系统运行的情况下,修改系统配置,增强了系统的可管理性和灵活性。例如,管理员可以添加或除去群集成员来处理客户机负载的变化,更改服务器属性并将更改自动复制到其群集成员,暂时停止服务器进行维护等等。
4. WAS是否支持目录服务 LDAP?请列举所支持的 LDAP 服务器。
答:
IBM WebSphere Application Server完全支持LDAP,并内置IBM Directory Server(LDAP服务器),同时可以兼容市场上其它的LDAP服务器,包括:
· Sun ONE Directory Server 5.1 / 5.2
· Lotus Domino Enterprise Server 6.0.3 / 6.5.1
· Windows Active Directory 2000 / 2003
· Novell eDirectory 8.7.3
· IBM Directory Server 5.1 / 5.2
· z/OS Security Server LDAP Server 1.4 / 1.5 / 1.6
在应用开发时,WebSphere允许应用程序通过JNDI访问LDAP服务器的目录数据。
有关 LDAP 设计和实现方面的更多资源,请参阅 IBM 红皮书《Understanding LDAP - Design and Implementation》。
5. WAS可以实现 Load Balance 功能,这与 WAS Network Deployment 的实现有什么区别?
答:
WAS的负载均衡功能(Load Balance)和WAS 的部署管理器(Deployment Manager),这两个概念常常被初学者混淆。其实要区分它们,有一个很简单的方法,即Load Balance 是针对运行时的;Deployment Manager 是针对 WAS 环境管理的,在运行时没有太大用处。 详细描述如下:
1. Deployment Manager(DM)对WAS 提供集中式的管理,这在复杂环境(例如,多台服务器、异构的平台)中尤其有用。要在上述复杂的环境中创建和管理可以用来做 Load Balance 的WAS 集群,非Deployment Manager(DM)莫属。此外还有类似参数配置、应用发布等工作,都是靠 DM 来进行。但是当环境配置的工作完成,WAS 投入运行时,DM 的任务就光荣地暂告一个段落。在运行时,DM 是否启动都不重要,只有当您需要更改某些配置或发布新的应用是,DM 才需要启动起来。 2. Load Balance 是WAS 在运行时非常重要的一个功能。在WAS 的集群前面,通常都有一个负载均衡器(通常是 IBM HTTP Server + Plugin,也可能是其它软件或者硬件的负载均衡器),有这个负载均衡器来决定把请求分发给哪个 WAS 集群成员。WAS 集群成员之间可以实现各种数据的复制/共享,包括:session, 有状态 session bean,dynamic cache replication。 有关 WAS Network Deployment 高可用性的更多资源,请参阅 IBM 红皮书《WebSphere Application Server Network Deployment V6: High Availability Solutions》。
6. WAS Network Deployment支持运行混合版本的单元吗?
答:
是的,WebSphere Application Server Network Deployment(和WebSphere Extended Deployment)支持混合版本单元,但是这被认为是一种临时性的方案,意味着仅使用几周或几个月。这种适应能力使得您可以轻松地从一个版本迁移到另一个版本,但是这并不是一个长期的解决方案。 建议是不要长期运行混合版本单元,因为运行两个(或更多)不同版本的时间越长,碰到问题的可能性就越大。当从 WebSphere Application Server 的一个版本迁移到另一个版本时,建议将新版本与当前已经安装的版本安装到同一台计算机上(这称为共存),在相同的硬件中运行两个单元(一个是旧的版本,一个是新的版本),然后在迁移过程中调整每个单元中的 WebSphere Application Server 实例,例如,减去一个 WebSphere Application Server V5.x 实例,添加一个 WebSphere Application Server V6.x 实例。 对于 Version 6.1 来说有点特殊,它具有一种“缺省安全”的新的安全基础结构,并且包括了证书的生成(使用主机名)。如果您需要将单元迁移到 Version 6.1,那么迁移的单元在缺省情况下是不安全的,除非您已经实现了旧版本 WAS 环境下的安全操作。 有关 WAS Network Deployment 高可用性的更多资源,请参阅 IBM 红皮书《WebSphere Application Server Network Deployment V6: High Availability Solutions》。
7.问题:WebSphere Application Server中附带的某些开放源码实现是什么版本的?
答:
经常有人问,“WebSphere Application Server 中附带什么版本的 Xerces(或Xalan)?”,人们通常会担心因为 WebSphere Application Server 运行时所使用的版本与他们自己的应用程序所使用的版本不同而产生冲突。实际上这根本不是问题,因为 WebSphere Application Server(V5 和更高版本)中的类加载器允许您对应用程序中希望使用的版本进行打包,然后指定您希望使用的类的版本。这时将加载您希望使用的类(而不是运行时所使用的类)。可以通过将应用程序或 Web 应用程序的类加载模式指定为“PARENT_LAST”来实现这项任务。这样做可以确保您的应用程序使用 EAR(或共享库)中的实现,并且可以防止当 WebSphere Application Server 维护更改版本时出现破坏。