原文:http://axis.apache.org/axis2/java/core/docs/userguide.html
以下内容为本人从apache的网站学习的笔记,基本上都是翻译过来的,第一次尝试翻译,翻译的不好,请读者多多包涵。
Apache Axis2 用户指引
这个指引为那些使用Apache Axis2 的新手提供一个开始学习的环境,同时也涉及一些高级的话题,比如如何通过Axis2来创建和开发Web services和如何通过使用WSDL 来同时生成客户端和服务器端。
Axis2 介绍
目录:
- 介绍Axis2
- ------什么是Axis2?
- ------底层是什么?
- ------Axis2如何处理SOAP信息?
- ------Axis2发布
- ------Axis2标准二进制发行版
- ------Axis2.war目录等级
- ------Axis2文档描述
- ------Axis2和客户端
- 安装和测试客户端编码
- 服务介绍
- ------信息交换模版
- 创建客户端
- ------选择一个客户端生成方法
- ------生成客户端
- ------Axis数据绑定(ADB)
- 创建服务
- ------通过可用选项获取合适(的版本?)
- ------从Scratch创建服务
- ------部署简单的java对象
- ------从WSDL部署和运行Axis2服务创建
- 例子
- 更多学习
什么是Axis2?
- 发送SOAP信息
- 接受和处理SOAP信息
- 通过简单的java类来创建一个网络服务
- 使用WSDL来创建客户端和服务器端的实现类
- 容易获取一个服务的WSDL
- 发送和接收带附件的SOAP信息
- 创建或者使用一个REST-based 网络服务
- 创建或者使用拥有 WS-Security,WS-ReliableMessaging,WS-Addressing,WS-Coordination, 和 WS-Atomic Transaction优势的服务
- 当新的要求/需求出现时,使用Axis2的模型结构很容易的支持他们
底层是什么?
发送程序创建一个源SOAP信息,一个XML信息包含头部和包体。(更多关于SOAP的信息,请看"服务介绍".)如果系统要求使用WS* 建议,就像WS-Addressing或者WS-Security一样,那信息可能在它离开发送器之前经过了附加的处理。一旦信息准备好了,它会通过一个特定的方式运输,例如HTTP,JMS等等。
Axis2如何处理SOAP信息?
在每一个结束的地方,你有一个应用程序设计来处理信息(发送或者接受)。在中间,你有Axis2,确切的说,你可以有Axis2。网络服务的价值是发送者和接收者(或者可以说是客户端和服务器端)不需要有同样的平台,更少的运行同样的应用程序。假设Axis2运行在两端,处理看起来是这样子的:
- 发送器创建SOAP信息。
- Axis “控制器”执行一些必要的操作在信息上,比如对信息进入WS-Security加密
- 发送器发送信息
- 在接收结束的时候,监听器监测信息
- 在接收方,监听器传送信息到任意处理者手中
- 一旦信息已经被处理标记为“预分发”,它会被分发器来处理,分发器会在相似的应用程序里传送它。
在Axis2里,那些动作被碎片化为“片段”,使用一些预定义好的片段,比如“预分发”,“分发”和“信息处理”,构建到Axis2里。每一个片段是一个“处理者”的集合。Axis2 让你能够控制哪一个处理者可以获得哪一个片段和命令哪一个处理者可以执行片段。你也可以添加你自己的片段和处理者。
处理者来自“模块”,能够附加到一个正在运行着的Axis2系统中。这些模块,例如Rampart,一个提供WS-Security的实现,还有Sandesha,一个提供WS-ReliableMessaging的实现,他们在Axis2中都是主要的可扩展的机制
Axis2发布
Axis2 标准二进制发行版
代码清单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文档目录结构
代码清单3:Axis2文档分布
docs javadocs xdocs LICENSE.txt README.txt release-notes.html
javadocs目录包含所有的关于Axis2 API的标准API文件( API documentation ),和其他的文档(像这个文档)在xdocs目录下。
Axis2和客户端
PS:终于翻译完了,很多地方还不通顺,等时间允许的时候,我会再修改和完善。