引言
Axis2 是下一代 Apache Axis。Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码。支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。
Axis2 的特性包括:
- 采用名为 AXIOM(AXIs Object Model,Axis 对象模型)的新核心 XML 处理模型
- 支持 In-Only 和 In-Out 消息交换模式 (MEP)
- 阻塞和非阻塞客户端 API(应用程序编程接口)
- 支持内置的 Web 服务寻址 (WS-Addressing)
- 支持 XMLBeans 数据绑定
- 新部署模型
- 支持超文本传输协议 (HTTP)、简单邮件传输协议 (SMTP) 和传输控制协议 (TCP) 等传输协议
本系列文章以 Axis2 0.92 版本为基础。您可以在 Apache 网站获得 Axis2 的最新版本。
回页首
Axis 体系结构概述
图 1. Axis2 体系结构
Axis2 体系结构将逻辑与状态分离;这允许在并行线程中执行逻辑。服务和调用的静态状态和动态状态分别存储在 Description
和Context
类中。Axis2 体系结构是使用 7 个独立模块实现的。
-
信息模型:此模块管理 SOAP 引擎的状态。该模型定义一组用于存放状态的类,而引擎管理这些信息对象的生命周期。信息模型包含两种用于存放状态的类。
Description
类存放本质上是静态的且存在于 Axis 引擎实例的整个生命周期中的数据(如传输、服务和操作的配置)。Context
类存放调用上下文中有效的服务和操作的动态信息,例如当前请求和响应 SOAP 消息、From 地址、To 地址和其他元素。
-
XML 处理模型:Axis2 引入了一个名为 AXIOM 的新模型,用于处理 SOAP 消息。AXIOM 使用 StAX (Streaming API for XML) 来解析 XML。StAX 是一个标准的流式 Pull 解析器 Java™ API。AXIOM 非常精巧,不会减慢 XML 信息集的构建速度——换句话说,对象只有在绝对必要时才会创建。总体而言,AXIOM 和 Axis2 所占用的内存要小于 Axis 1 所占用的内存。
-
SOAP 处理模型:Axis2 体系结构定义了两个管道(或流),分别称为 InPipe (InFlow) 和 OutPipe (OutFlow),用于处理服务器端的请求消息和响应消息。在客户端,这两个管道是反向的——换句话说,SOAP 请求消息流经 OutPipe,而响应消息流经 InPipe。管道或流包含一系列分为阶段的处理程序。阶段按照预先定义的顺序执行,如上面的图 1 所示。除预先定义的阶段和处理程序集外,用户还可以在操作级别、服务级别或全局级别配置用户阶段和相关处理程序。处理程序充当 SOAP 消息的拦截器,可以处理 SOAP 消息的 Header 或 Body。InPipe 是通过以下阶段进行配置的:
- TransportIn
- PreDispatch
- Dispatch
- PostDispatch
- PolicyDetermination
- User phases
- Message validation
我们将在本系列文章的第 2 部分中详细介绍上述各阶段。请求消息在通过 Inpipe 中配置的所有阶段后,到达 MessageReceiver,然后由 MessageReceiver 调用实际服务实现。服务器的 OutPipe 包含以下阶段:
- Message initialization
- Policy determination
- User phases
- MessageOut
用户配置的阶段位于这两个管道的用户阶段(User phases) 部分。如果在执行这些管道的过程中发生错误,则这些错误将通过 InFaultPipe 或 OutFaultPipe 管道。收到 Fault 消息后,在客户端调用 InFaultPipe;如果某个调用导致将错误发送到客户端,则在服务器端调用 OutFaultPipe。用户可以将处理程序添加到预先定义的阶段,并且按照这些处理程序运行的顺序进行配置。
-
部署模块:此模块配置 Axis 引擎并部署服务和模块。axis2.xml(在 webapps/axis2/WEB-INF 中)包含 Axis2 引擎的全局配置,包括:
- 全局模块 (Global modules)
- 全局接收器 (Global receivers)
- 传输 (Transports)
- 用户阶段定义 (User phase definitions)
每个服务的配置都包含在服务存档的 services.xml 文件中。本文稍后将详细讨论此文件。
-
WSDL 和代码生成:此模块从 WSDL 文件中生成客户端存根和服务器框架代码。Axis2 代码生成器发出采用正确 XML 样式表的 XML 文件,以用所需语言生成代码。
-
客户端 API:Axis2 客户端 API 调用遵循 WSDL 2.0 定义的 In-Only 和 In-Out 消息模式的操作。客户端 API 支持 In-Out 操作的阻塞和非阻塞调用。
-
传输:此模块包含与传输层交互的处理程序。传输处理程序有两种类型:TransportListener 和 TransportSender。TransportListener 从传输层接收 SOAP 消息,然后将其传送到 InPipe 进行处理。TransportSender 发送通过指定传输从OutPipe 接收到的 SOAP 消息。Axis2 提供 HTTP、SMTP 和 TCP 的处理程序。对于 HTTP 传输,服务器端上的 AxisServlet和客户端上的一个简单的独立 HTTP 服务器(由 Axis2 提供)充当 TransportReceiver。
分享到:
相关推荐
Axis分为两个主要版本:Axis1和Axis2,这两个版本在功能、性能和设计上都有所不同。 **Axis1** 是最初的版本,发布于2003年,它基于SOAP 1.1规范,提供了一个快速开发Web服务的框架。Axis1使用JavaBeans Activation...
Apache Axis2是著名的开源Web服务框架,用于构建和部署高效且灵活的Web服务。这个框架是基于Axis1的升级版,提供了许多改进和新特性,...理解这两个包的用途和内部结构对于有效利用Axis2来创建和部署Web服务至关重要。
- 高效的消息处理:使用了基于内存的数据结构,Axis2能快速处理消息。 - 支持多种绑定和数据格式:包括HTTP、JMS、SMTP等多种传输协议,以及XML、JSON等多种数据格式。 - 强大的服务部署:服务可以通过多种方式部署...
7. **性能优化**:Axis2采用内存高效的数据结构和序列化机制,以提高处理大规模消息的性能。 8. **多语言支持**:尽管轴心是Java实现,但通过 Axis2 的AXIOM(抽象XML信息模型)层,可以与其他语言如C、PHP和Python...
**Axis2-1.6.2:Web服务引擎的重塑** Axis2是Apache软件基金会开发的一个先进的Web服务引擎,它是...通过理解其核心特性、安装流程以及与Tomcat的集成,开发者可以充分利用Axis2的优势,提升Web服务的开发效率和质量。
2. **SOAP** - Axis2支持SOAP 1.1和1.2,这是一种基于XML的协议,用于在分布式环境中交换结构化和类型化的信息。 3. **RESTful服务** - REST是一种轻量级的架构风格,常用于构建Web API,通过HTTP方法(如GET、POST...
总的来说,Apache Axis2作为一个强大的Web服务开发框架,提供了丰富的特性和集成选项,包括WSDL生成、Spring整合和RESTful服务支持,以及与Servlet容器如Tomcat的无缝集成,为开发者带来了极大的便利。通过理解和...
**Axis2例子Demo** Axis2是Apache软件基金会开发的一个开源Web服务引擎,它提供了一种高效、灵活且可扩展的方式来创建和部署Web服务。...通过深入学习和实践,你可以进一步理解Web服务的工作原理和Axis2的高级特性。
在集成Axis2和Spring时,通常会使用Spring的ApplicationContext来加载Axis2配置,并将服务组件作为Spring Bean管理。这样,我们可以在Web服务的生命周期中利用Spring的依赖注入(DI)和面向切面编程(AOP)特性。...
将Axis2与Spring整合可以让我们在Spring的环境中便捷地创建、管理和部署Web服务,同时利用Spring的众多优点。本文将深入探讨如何将这两者融合,并介绍相关的技术细节。 首先,理解Axis2 Web服务的核心概念。Axis2是...
1. Axis2Samples:这可能是一个包含多种Axis2使用示例的目录,每个示例可能展示了不同的特性或操作,如服务的创建、发布、调用等。 2. Axis2:这可能包含了Apache Axis2的核心库和配置文件,用于运行和部署Web服务。...
WAR文件包含了一个完整的Web应用结构,包括Axis2的核心组件和服务处理逻辑。一旦部署,用户可以通过HTTP/HTTPS协议调用Web服务,无需额外的配置和安装。 Axis2的主要特性包括: - **模块化设计**:Axis2允许开发者...
Axis2的核心特性包括: - **模块化**:Axis2允许通过模块进行功能扩展,模块可以独立于服务存在,提高代码复用性和可维护性。 - **消息传递模型**:基于Apache Rampart和Neethi实现安全功能,如SOAP消息签名和加密,...
确保使用最新版本的Axis2可以充分利用其最新特性并获得更好的稳定性和性能。 下载Axis2 JAR文件的过程通常是这样的: 1. 访问Apache Axis2官方网站:http://axis.apache.org/axis2/java/core/ 2. 在“Downloads”...
7. **安全特性**:Axis2集成了一些安全标准,如WS-Security、WS-Trust和WS-SecureConversation,提供身份验证、消息加密和完整性检查等功能。 8. **传输协议**:Axis2不仅支持HTTP和HTTPS,还可以通过SMTP、JMS等...
在Java世界中,Axis2以其强大的功能和灵活性而闻名,它建立在 Axis1 的基础上,改进了性能并引入了许多新特性。Axis2的核心组件是以模块化的方式构建的,这使得开发者可以根据需要选择和配置特定的功能。 1. **Web...
【标题】"Axis2 IBM developerWorks" 涵盖了基于Java的Web服务框架Axis2的相关技术知识,这个标题暗示了我们即将探讨的是一个与IBM DeveloperWorks合作的资源集合,专注于Axis2的深入理解和应用。IBM DeveloperWorks...
另一个文件“axis2-1.4.1”可能是解压后形成的目录,包含了Axis2的完整结构,如bin目录(用于存放可执行文件和脚本)、conf目录(配置文件)、lib目录(依赖的JAR文件)、services目录(Web服务的部署文件)等。...
在IT行业中,Web服务是一种广泛使用的通信方式,它允许不同系统之间通过网络交换数据和功能。Axis2是Apache基金会开发的一个高效...通过学习和实践,你将能够熟练掌握Axis2的核心特性和用法,提高你的Web服务开发技能。
1. "Axis2 教程 - - ITeye技术网站.mht":这个文件很可能是关于Axis2的详细教程,涵盖了其安装、配置、创建和部署Web服务的基本步骤,可能还包括一些高级特性。 2. "利用Java编写简单的WebService实例 - 少说些...