JavaWeb服务开发:ApacheAxis深度解析
立即解锁
发布时间: 2025-08-17 01:24:17 阅读量: 3 订阅数: 15 


XML编程宝典:从基础到实践的全面指南
### Java Web服务开发:Apache Axis深度解析
#### 1. 组织发布代码示例
以下代码片段展示了发布组织所需的一些基本步骤:
```java
RegistryService rs = conn.getRegistryService();
BusinessLifeCycleManager lm = rs.getBusinessLifeCycleManager();
BusinessQueryManager qm = rs.getBusinessQueryManager();
Organization astroOrg = lm.createOrganization(“Cosmic Astrology”);
astroOrg.setDescription(“Horoscopes for all ocasions!”);
Collection phoneNums = new ArrayList();
phoneNums.add(“555-1212”);
astroOrg.setTelephoneNumbers(phoneNums);
Collection orgList = new ArrayList();
orgList.add(astroOrg);
lm.saveOrganizations(orgList);
```
这是一个简化示例。在实际应用中,你需要查看JAXR信息模型,了解用于保存组织信息的组织及其相关对象。每个组织被添加到一个列表中,然后通过调用`saveOrganizations()`方法将其持久化到注册表中。
#### 2. JWSDP中的Web服务API概述
JWSDP中的API主要用于消费、构建和部署Web服务,主要包括以下几类:
- **JAXM和SAAJ**:用于在Web服务之间发送消息。
- **JAX - RPC**:用于构建Web服务客户端和服务端点。
- **JAXR**:用于定位服务并检查其发布的服务。
这些新的Web服务API为开发者提供了丰富的Web服务技术,并且在大多数情况下,学习曲线相对较平缓,同时也符合Web服务互操作性的愿景。
#### 3. Apache Axis简介
如果你打算使用Java开发Web服务,那么Apache Axis是一个值得关注的工具。Axis是一个通用的SOAP消息处理系统,旨在为开发者提供丰富的工具和基础设施,用于开发和消费Web服务。它是一个开源工具,包含了开发者快速消费、构建、部署和托管Web服务所需的基本元素。Axis在功能和复杂性之间取得了很好的平衡,开发者可以在较短的学习曲线内快速构建Web服务,同时还能对消息处理、类型映射等进行更高级的定制。
#### 4. Axis的发展历程
Axis的前身是IBM推出的SOAP4J。2000年末,IBM将其捐赠给Apache软件基金会,之后它演变为Apache SOAP,并经过多次修订。随着Web服务开发的快速发展,Apache SOAP 2.2版本的架构逐渐显得僵化,无法适应新的需求。于是,Apache软件基金会着手定义下一代版本,即Axis。Axis虽然是一个全新的实现,支持替代传输协议和消息规范,但最初仍主要关注HTTP和SOAP。其架构设计为未来引入新协议、消息规范和提供者提供了可能。目前,基于版本1.1的Axis已经是一个非常完整、可用的实现,在性能、功能和互操作性方面都超越了Apache SOAP 2.2。
#### 5. Axis新架构的关键特性
- **性能提升**:Apache SOAP的性能受限于其使用DOM处理XML流的XML处理器。Axis通过切换到SAX(Simple API for XML Parsing),减少了内存消耗,提高了消息流的解析速度,从而显著提升了性能。
- **灵活性和可扩展性**:Axis采用“可插拔”架构,开发者和第三方集成商可以为日志记录、系统管理、国际化等提供自己的插件组件。通过标准化关键系统组件的“可插拔API”,Axis使供应商更容易将其技术无缝集成到自己的平台中。
- **支持SOAP规范**:当前的Axis版本完全支持SOAP 1.1规范,并部分支持SOAP 1.2规范。例如,Axis 1.1版本不支持SOAP 1.2规范中的信封版本控制和命名空间,但Axis团队将全面支持SOAP 1.2规范列为高优先级任务。
- **改进的互操作性**:Axis的目标之一是提高与其他SOAP实现的互操作性。在1.1版本中,对无类型参数的支持使得Axis更容易与其他供应商的实现进行互操作。其架构对“提供者”的模块化处理方式也允许框架与其他技术(如COM、EJB等)进行互操作。
- **传输独立性**:Axis的设计尽量避免依赖特定的传输协议。虽然开发者可能仍然主要使用HTTP,但底层设计支持替代协议(如SMTP、消息中间件等)。
- **JAX - RPC和SAAJ合规性**:Axis旨在完全支持Java Web服务开发工具包中的JAX - RPC和SAAJ规范。目前,Axis声称100%符合这两个规范,并且预计将始终与这些规范紧密结合。
- **WSDL支持**:Axis支持WSDL(Web服务描述语言)规范的1.1版本。有了WSDL支持,开发者可以轻松生成访问远程服务的存根,并查看已部署服务的配置。
#### 6. Axis架构概述
Axis架构是一个通用的消息处理框架。Axis引擎的主要作用是接收来自特定传输的传入SOAP消息,验证并反序列化该消息,将消息路由到适当的服务,然后为客户端构造并序列化SOAP响应。Axis将这个基本的消息处理模型划分为一系列定义明确的层,最大化了开发者在消息流经系统时修改和控制消息的机会。这种模块化方法也是Axis能够不断发展并支持新传输、消息协议等的核心。
以下是Axis引擎处理服务器消息的流程:
```mermaid
graph LR
```
0
0
复制全文
相关推荐










