`
chixianhuadeyu
  • 浏览: 67495 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Axis2简介

阅读更多

Axis2简介

Apache Axis2项目是一个基于Java语言的Web services系统服务和客户端的实现。为了从Apache Axis 1.0中获取教训,Apache Axis2提供了一个完整的对象模型和模块化体系结构,这样可以很容易的添加功能以及支持一个新的与Web services相关的说明和建议。Axis2可以让你很容易的执行以下任务:

  • 发送SOAP消息
  • 接收和处理SOAP消息
  • 从一个普通的Java类建立Web service
  • 用WSDL来建立实现服务和客户端的实现类
  • 很容易的从一个服务来获取WSDL
  • 发送和接收带有附件的SOAP消息
  • 建立或者使用基于REST的Web service
  • 建立或者使用从WS-Security, WS-ReliableMessaging, WS-Addressing, WS-CoordinationWS-Atomic Transaction获取优势的服务
  • 当新建议出现时,使用Axis2的模块化结构来很容易的加入对它的支持

当然还存在很多其它特性,但是这篇指南主要集中在向你展示如何完成上面列表的前五个任务。

   内部流程

要理解Axis2并且知道它做了些什么,你必须对Web services消息的生命周期有一个很好的认识。通常,它看起来如下图所示:

发送应用程序建立原始SOAP消息,这是一个包含消息头和消息体的XML消息。(要获得更多的SOAP信息,查阅“服务介绍”)如果系统需要使用例如WS-Addressing或者WS-Security之类的WS*建议,这个消息就会在离开发送者之前经过额外的处理。一旦消息准备好了,他就会借助一个特别的传输器发送出去,例如HTTP,JMS等等。消息沿着它的路径发送到接收者,接收者是借助传输监听器接收消息的。(换句话说,如果应用程序没有运行HTTP监听器,那么它就将不会接收HTTP消息)再者,如果消息是需要使用WS-Security 或者其它建议的系统的一部分,那么为了检查凭证或者解密敏感信息,它需要一些额外的处理。最后,一个派发者决定这个消息发送到的指定应用程序(或者其它组件,例如Java方法),并且把它发送给这个组件。这个组件是一个完整的应用程序的一部分,这个应用程序是设计用来与这些来回发送的数据一起工作的。

   Axis2如何处理SOAP消息

Axis2可以处理一次事务中的发送者和接收者双方的过程。从Axis2的角度看,结构如下:

在一端,你有一个处理(发送或接收)消息的应用程序。在中间,你有Axis2,或者,你可以有Axis2。Web services的价值在于收发双方(任何一方都可以是服务段或者客户端)甚至不需要在同一个平台上,更不需要运行同一个应用程序。假设Axis2在两边同时运行,过程如下:
  • 发送者建立SOAP消息。
  • Axis "handlers" 执行必要的操作,例如对相关消息进行WS-Security加密。
  • 传输器发送者发送消息。
  • 在接收端,传输监听者检测消息。
  • 传输监听者将消息传递给接收端的所有handler。
  • 一旦消息在“pre-dispatch”阶段处理完,它会被传递给派发者,然后被传给合适的应用程序。
在Axis2中,这些行动被分解成“阶段”,以及几个预定义阶段,例如“pre-dispatch”,“dispatch”和“message processing”,集成在Axis2中。每一个阶段是一组“handler”。Axis2可以让你来控制每个handler归属于哪个阶段,以及在一个阶段中各个handler的执行顺序。你也可以添加你自己的阶段和handler。Handler来自于可以被插入一个运行着的Axis2系统的模块。这些模块,例如提供WS-Security实现的Rampart,提供WS-ReliableMessaging实现的Sandesha,都是Axis2中的主要扩展机能。

   Axis2发行包

Axis2以多个发行包发行。你需要哪个视你所需决定。

   Axis2标准二进制发行包

如果你正在开发服务和应用程序,你需要Axis2标准二进制发行包。这个发行包包括所有必要的*.jar文件,以及很多便于开发用的脚本。它具有以下结构。代码列表1:Axis2标准二进制发行包
bin
      axis2.bat
      axis2.sh
      axis2server.bat
      axis2server.sh
      java2wsdl.bat
      java2wsdl.sh
      wsdl2java.bat
      wsdl2java.sh
      setenv.sh
lib
      activation-1.1.jar
      ...
      XmlSchema.jar
repository
             modules
         modules.list
                addressing-1.1.mar
               ..
             services
         services.list
                version.aar
         ..
samples
      ...
webapp
      ...
conf
    axis2.xml 
LICENSE.txt
README.txt
NOTICE.txt
INSTALL.txt
release-notes.html
bin目录包括一些有用的脚本。它们包括axis2.bat(或者axis2.sh),这个文件可以让你在不手工添加Axis2 jar文件到类路径的情况下方便的执行Java命令;java2wsdl.bat(和 .sh)和wsdl2java.bat(和 .sh),它可以让你轻易的从一个WSDL文件生成Java代码,反之亦然;axis2server.bat(和sh),一个简易Web服务器,它可以让你早自己的应用程序中搭建Axis2的功能来发送接收消息。如所希望的,lib目录包含了所有必需的.jar文件。服务和模块放在repository目录。Axis2提供了一个WS-Addrssing的标准模块实现,你可以添加任何其它必要的模块到repository/modules目录,例如Rampart。Conf目录包括axis2.xml文件,它是全局部署描述。最后,示例目录包括了所有随Axis2一起发行的示例代码。查看示例及其描述列表

   axis2.war发行目录结构

axis2.war可以从WAR (Web Archive)发行包处得到。这个Axis2服务端按照一个J2EE应用程序发布。它具有代码列表2所示结构。代码列表2:Axis2的服务端
axis2-web
META-INF
WEB-INF
    classes
    conf
        axis2.xml
    lib
        activation.jar
        ...
        xmlSchema.jar
    modules
        modules.list
        addressing.mar
        ...
        soapmonitor.mar
    services
        services.list
        aservice.aar
        ...
        version.aar
    web.xml
从顶上开始,axis2-web是一组JSP页面,它们组成了Axis2管理员应用,通过这个应用,你可以执行任何需要的行动,例如添加服务,启动或者停止服务。WEB-INF目录代表了实际的Axis2应用程序,包括所有的*.jar文件,任何添加的模块,甚至已经部署的服务自己。Classes目录包含了任何Axis2本身需要的类或者属性文件,例如log4j.properties。任何由系统处理的实际的服务位于services目录,它们以axis卷或者*.aar文件的形式存在。这个文件包含了与这个服务相关的所有类文件,以及控制任何额外需求的service.xml文件,例如消息收发者的定义。所有这些最主要的文件是axis2.xml,它控制了应用程序如何处理接收到的消息。它定义了消息接收者和传输接收者,以及定义传输发送者和决定哪个模块是活跃的。它也定义了阶段的顺序,以及在每个阶段中执行的handler。你可以控制通过使用Web应用程序来控制所有这些信息,但是如果你重启Axis2应用程序,这些变化就丢失了,服务器会重新应用axis2.xml中的定义。Axis2也提供了第三种发行包,源码发行包,该发行包可以让你自己生成这个.war文件。

   Axis2文档发行包目录结构

文档发行包包括所有的Axis2文档,它包含xdocs和javadocs。它具有以下结构:代码列表3:Axis2文档发行包
docs
      javadocs
      xdocs
    
LICENSE.txt
README.txt
release-notes.html
javadocs目录包括所有的标准Axis2 API文档,在xdocs目录还有其它文档(例如类似本文的文档)。

   Axis2和客户端

现在解释作为Web应用一部分的Axis2是如何工作的。非J2EE应用一部分的独立客户端到底是什么?在这种情况下,一个发送者可以使用Axis2的缺省属性,换句话说,没有特殊的handler等等。但是你还是有机会告诉客户端载入它自己的axis2.xml拷贝,然后根据这个配置执行。查看下一部分安装测试客户端代码
分享到:
评论

相关推荐

    axis2的API,axis2 API,axis2帮助文档

    ### Axis2简介 Axis2是Apache Axis的第二代版本,它在第一代的基础上进行了许多改进和优化,提供了更高效、灵活的Web服务解决方案。Axis2基于模块化设计,允许用户按需选择功能,从而降低了内存占用和提高了性能。它...

    Axis2 接口生成wsdl工具

    Axis2 简介** Apache Axis2是Apache SOAP项目的第二代实现,提供了强大的Web服务引擎,支持多种协议,包括SOAP 1.1和1.2。除此之外,它还引入了对RESTful风格的服务的支持,使得服务开发者能够灵活选择适合的通信...

    Axis2例子Demo

    **一、Axis2简介** Axis2是基于SOAP(简单对象访问协议)的Web服务框架,它构建在AXIOM(抽象XML信息模型)之上,提供了高性能和低内存消耗。Axis2支持多种传输协议,如HTTP、HTTPS,以及消息格式,如SOAP、RESTful...

    AXIS2生成客户端代码教程.zip

    1. **AXIS2简介** AXIS2是Apache软件基金会的一个项目,它提供了高效且灵活的Web服务实现。AXIS2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、JMS)和数据绑定机制(如XMLBeans、Aegis、JAXB)。AXIS2还包含...

    Axis2简介,实用易学

    ### Axis2:高级Web服务框架的深度解析 #### 背景与介绍 在Web服务领域,Apache Axis项目是开源社区中的佼佼者,而Axis2作为该项目的第二代产品,自发布以来就以其高性能、灵活性和丰富的功能集赢得了广泛的赞誉。...

    Axis2Demo,最简单的Axis2的体现,客户端口

    Axis2简介 Axis2是基于SOAP(Simple Object Access Protocol)的,用于处理Web服务的底层通信。它基于AXIOM(Abstract XML Information Model)模型,提供了XML到Java对象和Java对象到XML的直接映射,极大地提高了...

    axis2生成客户端服务端代码

    #### 一、Axis2简介 Axis2是Apache组织下的一个开源项目,它是一种高性能、轻量级的Web服务框架,支持SOAP和REST等协议,能够帮助开发者轻松地构建和部署Web服务。Axis2提供了一套完整的工具链,包括用于生成客户端...

    axis2-1.4.1

    一、Apache Axis2简介 Apache Axis2是基于SOAP(Simple Object Access Protocol)的Web服务引擎,它是Apache SOAP项目的后续产品。Axis2旨在提供高性能、模块化和灵活的架构,支持多种协议和数据格式,如SOAP 1.1、...

    Java+Axis2调用Web Services 网络接口

    1. **Axis2简介**: Axis2是Apache Axis的第二代版本,提供了更高级的功能,包括模块化架构、消息传递模型、多协议支持等。它的核心部分负责处理SOAP消息,而可插入的模块则处理各种协议和格式,如REST、MTOM...

    axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip

    1. **Apache Axis2简介** Apache Axis2是Apache软件基金会的Web服务引擎,它为开发和部署SOAP 1.1/1.2和RESTful Web服务提供了一个高效、灵活的平台。Axis2的主要特点包括模块化架构、消息传递机制和多种绑定支持,...

    最新axis2实例.rar

    **Axis2简介** Axis2是Axis1.x的升级版,它引入了许多改进,包括更好的性能、模块化架构以及更强大的功能。Axis2的核心组件包括: 1. **Message Receiver**: 接收并处理传入的消息。 2. **Transport**: 负责消息的...

    axis2实现webservice

    #### 一、Axis2简介 - **定义**:Apache Axis2是基于Java的一个开源的WebService框架,它支持多种标准(包括SOAP1.1、SOAP1.2、WS-Addressing等),并且具有轻量级、模块化的特点。Axis2提供了强大的工具集来简化...

    axis2-1.5.4-bin&axis2-1.5.4-war

    1. **Axis2简介**:Apache Axis2是用于构建高性能、可扩展Web服务的框架,基于Java平台。它提供了服务导向架构(SOA)实现,支持SOAP 1.1、1.2和RESTful服务,以及WSDL 1.1、WS-I BP 1.1和WS-Security等规范。 2. *...

    axis2客户端生成java代码的jar包以及依赖jar包

    一、Apache Axis2简介 Apache Axis2是Apache SOAP(简单对象访问协议)实现的第二代产品,它提供了高性能和可扩展的架构,支持SOAP 1.1, SOAP 1.2, RESTful服务和WS-*标准。Axis2的核心功能包括消息处理、模块化、...

    基于axis2的webservice

    1. **Axis2简介** Axis2是Apache Axis的第二代版本,它提供了一个轻量级、高性能的Web服务引擎。Axis2支持多种编程模型,如SOAP消息处理、RESTful服务等,并且兼容Java EE和Java SE环境。它基于模块化设计,可以...

    axis2介绍详细文档

    一、Apache Axis2简介 Apache Axis2是Apache软件基金会下的一个开源项目,它是一个高性能、可扩展的SOAP服务框架,用于构建和部署Web服务。Axis2支持SOAP 1.1和SOAP 1.2标准,提供了丰富的API和工具,使得开发人员...

    部署axis2c的文档

    - **验证Web服务**:通过浏览器访问`http://localhost:9090/axis2/services/`,检查是否能看到已发布的Web服务列表。 #### 所需软件与工具 部署Axis2c Web服务可能需要以下软件和工具: - **Axis2c 1.6.0**:Web...

Global site tag (gtag.js) - Google Analytics