`
chixianhuadeyu
  • 浏览: 66321 次
  • 性别: 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简介,实用易学

    Axis2教程详解,大家免费下载研究,实用易学

    用AXIS2开发WebService

    1. AXIS2简介 本文介绍如何在eclipse3.2下用Axis2开发web service,并将Axis2与自己的web service部署在Tomcat 6.0.18下,再通过在C#下写测试程序,来访问Tomcat下的web service。

    Axis2快速构建Web Service ppt

    .Web Service简介 .如何开发一个Web Service .Axis2简介 .Axis2安装与部署 .Web Service开发步骤

    axis2 webservice入门手册(JS,Java,PHP调用实例源码)www.sietoo.com出品

    最近接触到一个银行接口的案子,临时需要用到axis2 webservice。自己现学现总结的一些...Axis2简介 ①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。

    WEB SERVICE基础

    第一章 WEB SERVICE基础 3 ...一:AXIS2简介: 16 二:ECLIPSE 与APACHE AXIS2集成开发WEB SERVICE 16 第三章:XFIRE开发WEB SERVICE 16 1.XFIRE简介 17 2.XFIRE特点 17 3.ECLIPSE+XFIRE开发WEB SERIVCE 17

    axis2中文手册帮助文档简介

    http://iso.freesion.com/3065/4885308/947698/

    Axis1.4开发指南.pdf

    2.AXIS使用........................................3 2.1AXIS的介绍.....................................3 2.2AXIS的下载.....................................3 2.3AXIS的安装................................

    通往架构师之路(全27)

    10 Axis2 Web Service 一 11 Axis2 Web Service 二 12 Axis2 Web Service 三 个人认为内容非常好 所以整理上传 希望能给更多的人带来帮助 向lifetragedy致谢 ">资源简介: 本资源整理自CSDN网站 发表者...

    通往架构师之路

    资源简介: 本资源整理自CSDN网站,发表...10、Axis2 Web Service(一) 11、Axis2 Web Service(二) 12、Axis2 Web Service(三) 个人认为内容非常好,所以整理上传,希望能给更多的人带来帮助。 向lifetragedy致谢。

    WebService简介

    WebService学习,java端通过Axis2,Cxf发布WebService的应用

    Web服务--Metro 简介1

    这两个框架都允许要么从已有的 Java 代码开始构建 Web 服务(但是,除非使用 Jibx2Wsdl 之类的单独的工具,否则 Axis2 对这种方法的支持有限

    Hi3519AV100 4K Smart IP Camera SoC 产品简介.pdf

    The chip integrates with the fourth generation Hays ISP, support WDR, multilevel noise reduction, six-axis anti-shake and a variety of image enhancement and Correction algorithm to provide customers ...

    理解RESTful架构、Hessian简介、机制、Webservice及cxf介绍

    (2)客户端和服务器之间,传递这种资源的某种表现层(Representation); (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。 Hessian: 是由caucho提供的一个基于binary-RPC实现的...

    底层Servlet实现WebService lzws.zip

    底层Servlet实现WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习

    CXF方式的WebService+Spring,lzws-cxf.zip

    CXF方式的WebService+Spring,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习

    EndPoint、JAX-WS方式的WebService,lzws.zip

    EndPoint、JAX-WS方式的WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习

    身份认证WSDL UserVerifyService.wsdl

    身份认证示例WSDL文件,用于反向生成JAVA文件代码,请配同“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章一起阅读

    boost-histogram:C ++ 14 Boost的Python绑定

    文字简介(单击以展开) import boost_histogram as bh # Compose axis however you like; this is a 2D histogram hist = bh . Histogram ( bh . axis . Regular ( 2 , 0 , 1 ), bh . axis . Regular ( 4 , 0.0 ...

    安防天下智能网络视频监控技术详解与实践part2

    3.4.3 mpeg-2技术简介 75 3.4.4 mpeg-4技术介绍 76 3.4.5 h.264技术说明 80 3.4.6 视频编解码技术应用 82 3.5 本章小结 84 第4章 硬盘录像机(dvr)技术 87 4.1 dvr产品介绍 88 4.1.1 dvr发展历史 88 ...

Global site tag (gtag.js) - Google Analytics