1.Apache Axis2 用户指引

原文:http://axis.apache.org/axis2/java/core/docs/userguide.html

以下内容为本人从apache的网站学习的笔记,基本上都是翻译过来的,第一次尝试翻译,翻译的不好,请读者多多包涵。

Apache Axis2 用户指引

这个指引为那些使用Apache Axis2 的新手提供一个开始学习的环境,同时也涉及一些高级的话题,比如如何通过Axis2来创建和开发Web services和如何通过使用WSDL 来同时生成客户端和服务器端。

Axis2 介绍

这个章节介绍Axis和它的结构,在最新的Axis2 下载里也有这些目录的说明。

目录:

  • 介绍Axis2
  • ------什么是Axis2?
  • ------底层是什么?
  • ------Axis2如何处理SOAP信息?
  • ------Axis2发布
  • ------Axis2标准二进制发行版
  • ------Axis2.war目录等级
  • ------Axis2文档描述
  • ------Axis2和客户端
  • 安装和测试客户端编码
  • 服务介绍
  • ------信息交换模版
  • 创建客户端
  • ------选择一个客户端生成方法
  • ------生成客户端
  • ------Axis数据绑定(ADB)
  • 创建服务
  • ------通过可用选项获取合适(的版本?)
  • ------从Scratch创建服务
  • ------部署简单的java对象
  • ------从WSDL部署和运行Axis2服务创建
  • 例子
  • 更多学习

什么是Axis2?

Apache Axis2项目是一个以java为基础的实现了客户端和服务器端网络服务均衡。使用了Apache Axis 1.0的优势,Apache Axis2提供一个的完全的对象模型和一个模块体系结构,使能够更容易的添加功能和支持新的网络服务规范和建议。

Axis2使你能够容易的执行以下的任务:
  • 发送SOAP信息
  • 接受和处理SOAP信息
  • 通过简单的java类来创建一个网络服务
  • 使用WSDL来创建客户端和服务器端的实现类
  • 容易获取一个服务的WSDL
  • 发送和接收带附件的SOAP信息
  • 创建或者使用一个REST-based 网络服务
  • 创建或者使用拥有 WS-Security,WS-ReliableMessaging,WS-Addressing,WS-Coordination, 和 WS-Atomic Transaction优势的服务
  • 当新的要求/需求出现时,使用Axis2的模型结构很容易的支持他们
 
同时还有更多的特征,但是这个用户指引关注于向你展示如何完成在列表上的前5个任务。

底层是什么?

为了更好的了解Axis2以及它是什么,你必须对网络服务信息的生命周期有个很好的了解,典型的来说,它看起来像这个样子:

Lifecycle of a Web services message

发送程序创建一个源SOAP信息,一个XML信息包含头部和包体。(更多关于SOAP的信息,请看"服务介绍".)如果系统要求使用WS* 建议,就像WS-Addressing或者WS-Security一样,那信息可能在它离开发送器之前经过了附加的处理。一旦信息准备好了,它会通过一个特定的方式运输,例如HTTP,JMS等等。


Axis2如何处理SOAP信息?

Axis2可以在数据传输的时候控制处理发送器和接受者。从Axis2 前景看来,结构是这样子的:

Axis2 handles SOAP messages

在每一个结束的地方,你有一个应用程序设计来处理信息(发送或者接受)。在中间,你有Axis2,确切的说,你可以有Axis2。网络服务的价值是发送者和接收者(或者可以说是客户端和服务器端)不需要有同样的平台,更少的运行同样的应用程序。假设Axis2运行在两端,处理看起来是这样子的:

  • 发送器创建SOAP信息。
  • Axis “控制器”执行一些必要的操作在信息上,比如对信息进入WS-Security加密
  • 发送器发送信息
  • 在接收结束的时候,监听器监测信息
  • 在接收方,监听器传送信息到任意处理者手中
  • 一旦信息已经被处理标记为“预分发”,它会被分发器来处理,分发器会在相似的应用程序里传送它。

在Axis2里,那些动作被碎片化为“片段”,使用一些预定义好的片段,比如“预分发”,“分发”和“信息处理”,构建到Axis2里。每一个片段是一个“处理者”的集合。Axis2 让你能够控制哪一个处理者可以获得哪一个片段和命令哪一个处理者可以执行片段。你也可以添加你自己的片段和处理者。

处理者来自“模块”,能够附加到一个正在运行着的Axis2系统中。这些模块,例如Rampart,一个提供WS-Security的实现,还有Sandesha,一个提供WS-ReliableMessaging的实现,他们在Axis2中都是主要的可扩展的机制


Axis2发布

Axis2 已经发布了几个版本( distributions),你需要使用哪一个,依据于你要用它来做什么。

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

二进制目录结构包含一些有用的脚本。他们包含Axis2.bat(或者axis2.sh),它能够让你不需要手动的添加所有的Axis2 jar文件到环境变量就能够容易地执行java命令,java2wsdl.bat(和.sh)和wsdl2java.bat(和.sh),它可以使你轻易的从一个WSDL生成java代码(反过来也一样),还有axis2server.bat(和sh),一个简单的Web server使你能够构建Axis2的能力来发送和接受信息到你自己的应用程序中。

正如所期望的,lib目录包含所有必需的jar文件。Service和modules被添加到responsitory目录中。Axis2拥有一个实现了WS-Addressing的标准模块(module)。并且你可以添加其他必需的模块(比如Rampart)到repository/modules目录下。

conf目录包含axis2.xml,它是一个全局的部署描述器。

最后samples 目录包含所有和Axis2相关的例子代码。可以看这些例子以及他们的描述列表。(samples and their descriptions.)

axis2.war 发行版目录等级

axis2.war 在WAR发行版( WAR (Web Archive) Distribution)是可使用的。在Axis2的服务器端可作为J2EE应用程序,它还有以下的结构:

代码清单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是一个组成Axis2管理应用程序的( Axis2 administration application)jsp页面集合,通过它你可以执行任何需要的动作,比如添加服务和启用和不启用模块。WEB—INF目录代表着真实的Axis2应用程序,包含*.jar文件,任意包含的模块,以及甚至部署服务器他们自己。

classes目录拥有任意Axis2自己需要的class文件或者property文件,比如log4j.properties.任意实际上能够被系统处理的服务在services目录下和axis存档一样,或者*.aar文件。这个文件包含许多和服务相关联的类,和services.xml文件一样,它控制很多附加的要求,例如信息发送者和信息接受者的定义。

这些文件当中最重要的是axis2.xml,它控制应用程序如何处理接收信息。它定义信息接收者和传送者,同时还定义传输发送者和定义哪些模块是启用的。它还定义了片段的命令,和处理每一个片段的处理者。

通过使用网络应用程序(Web application)你可以控制所有的信息,但是如果你重启Axis2应用程序,那些改变会丢失并且服务会恢复到axis2.xml文件里定义的状态。

Axis2还提供一个第三发行版,源发行版( source distribution),它可以让你自己生成这个war文件。

 

Axis2文档目录结构

文档描述包含所有的Axis2文档,包含xdcos和javadocs。它有以下几个狗:

代码清单3:Axis2文档分布

docs
      javadocs
      xdocs

LICENSE.txt
README.txt
release-notes.html

javadocs目录包含所有的关于Axis2 API的标准API文件( API documentation ),和其他的文档(像这个文档)在xdocs目录下。

 

Axis2和客户端

现在解释Axis2如何作为网络应用程序(Web application)的一部分。一个单独的客户端不是J2EE应用程序的一部分吗?在这种情形下,一个发送者可以使用Axis2默认的属性,换句话说,没有特别的处理者等等。但是你也可以有选项的告诉客户端去加载它自己的axis2.xml的拷贝和行为。
看下一章节 安装和测试客户端代码( Installing and Testing Client Code)

 PS:终于翻译完了,很多地方还不通顺,等时间允许的时候,我会再修改和完善。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值