下一代 SOAP 处理框架
通过本文可了解 Axis2 部署模型最值得关注的新功能,正是这些功能使得 Axis2 部署模型比 Axis1 方便易用了许多……
您是否因为需要花时间部署多个服务而感到倦怠了呢?是不是每次进行更改后都必须重新启动服务器?Apache Axis2 可以帮您摆脱这些烦恼。Axis2 是干净的可扩展开源 Web 服务平台,正逐渐受到广泛的接受。Axis2 集中了 Apache SOAP 家族的大量优势,而且进行了一些重大改进。
引言
Apache Axis2(主要的开源 Web 服务平台之一)提供了一系列新功能,最为可贵的是,其中的很多功能都对向开发人员提供更为用户友好的方法起到了促进作用。在之前的 Axis 版本中,并不十分重视用户友好性。例如,在 Axis1 中,用户必须手动调用管理客户机并更新服务器类路径,然后重新启动服务器以应用更改。这个有点麻烦的部署模型对新手肯定是一道障碍。因此,Axis2 经过了精心的设计,能够克服此缺点,并提供更为灵活、可方便进行配置的部署模型。
Axis2 部署新功能
Axis2 部署模型将一系列新功能引入了 Apache Web 服务堆栈中(其中一些功能对于 Web 服务范式并非新事物)。以下列出了最为重要的主要更改和新功能:
- 类似于 Java™ 2 Platform Enterprise Edition (J2EE) 的部署机制(基于存档)
- 热部署和热更新
- 存储库(可以在其中放置服务和模块)
- 处理程序(模块)部署的更改
- 新部署描述符
- 多个部署选项
在下面的内容中,我们将逐个对每个方面进行详细讨论。
类似于 J2EE 的部署机制
在任何 J2EE 应用服务器中,都可以将应用程序作为自包含包部署,可以将所有的资源、配置文件和二进制文件打包为一个文件并进行部署。这显然非常实用,而也正是因为如此,Axis2 也引入了相同的机制来更方便地部署服务(和模块)。
考虑这样的情况,假如您有一个存在多个第三方依赖关系和一组属性文件的服务,同时假定没有类似于 J2EE 的部署机制。必须手动将所有这些依赖 JAR 文件和属性文件放入类路径中。如果有一个或两个服务器,这项工作的量将翻倍!在存在数百副本的集群环境中,将依赖 JAR 文件和其他资源添加到类路径中的做法并不实际。有了类似于 J2EE 的部署机制后,就没有这些问题了,只需要将服务放入副本中,而不需要进行任何其他工作了。
Axis2 自包含包(或存档文件)的内部结构如图 1 中所示。两种 Axis2 服务(存档和模块存档)非常相似。二者之间的细微差别包括:
- 对于 Axis 服务,描述符文件是 services.xml;而对于 Axis 模块,描述符文件是 module.xml。
- Axis2 服务的文件扩展名是 .aar(服务的文件名将为 foo.aar),模块的文件扩展名为 .mar(模块的文件名将为 foo.mar)。
图 1. 存档文件的结构
- 本文关键词:

