Axis2简介
Apache Axis2项目是一个基于Java语言的Web services系统服务和客户端的实现。为了从Apache Axis 1.0中获取教训,Apache Axis2提供了一个完整的对象模型和模块化体系结构,这样可以很容易的添加功能以及支持一个新的与Web services相关的说明和建议。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教程详解,大家免费下载研究,实用易学
1. AXIS2简介 本文介绍如何在eclipse3.2下用Axis2开发web service,并将Axis2与自己的web service部署在Tomcat 6.0.18下,再通过在C#下写测试程序,来访问Tomcat下的web service。
.Web Service简介 .如何开发一个Web Service .Axis2简介 .Axis2安装与部署 .Web Service开发步骤
最近接触到一个银行接口的案子,临时需要用到axis2 webservice。自己现学现总结的一些...Axis2简介 ①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。
第一章 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
http://iso.freesion.com/3065/4885308/947698/
2.AXIS使用........................................3 2.1AXIS的介绍.....................................3 2.2AXIS的下载.....................................3 2.3AXIS的安装................................
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学习,java端通过Axis2,Cxf发布WebService的应用
这两个框架都允许要么从已有的 Java 代码开始构建 Web 服务(但是,除非使用 Jibx2Wsdl 之类的单独的工具,否则 Axis2 对这种方法的支持有限
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 ...
(2)客户端和服务器之间,传递这种资源的某种表现层(Representation); (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。 Hessian: 是由caucho提供的一个基于binary-RPC实现的...
底层Servlet实现WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习
CXF方式的WebService+Spring,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习
EndPoint、JAX-WS方式的WebService,请根据“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章配套练习
身份认证示例WSDL文件,用于反向生成JAVA文件代码,请配同“创建WebService的几种方式简介(EndPoint、JAX-WS、CXF、axis2、自定义Servlet+Document解析)”文章一起阅读
文字简介(单击以展开) 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 ...
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 ...