今天稍看了下关于axis2的介绍,官方上说Apache Axis2是Apache提供的一款第三方Web Services引擎,与其前身Apache Axis相比,axis2更加高效、模块化,也更面向于XML的组织。经过精心的设计,axis2提供了更加便利的模块添加功能。

Apache axis是apache提供的基于java的,同时支持服务端和客户端的的web service引擎。提供了完整的对象模型和模块化的架构,所以能很方便的添加功能和支持新的web services相关的规范。

通过axis2,开发者可以简单地完成以下功能:

  • 发送SOAP消息

  • 接收并处理SOAP消息

  • 通过普通的java类来创建web service

  • 通过WSDL为server和client生成实现类

  • 简单地获得服务的WSDL

  • 在发送或接收的SOAP消息中添加附件

  • 创建或使用RESTFUL web service

  • 创建和使用具有以下支持的web service:

  • WS-Security

  • WS-ReliableMessaging

  • WS-Addressing

  • WS-Coordination

  • WS-Atomic Transaction

  • 使用Axis2的模块化结构快速的为新的web service规范提供支持。

 



在使用之前当然需要先安装axis2相关的服务。下面是我在linux上的一个安装过程,其主要过程来源于官方的Apache Axis2 Installation Guide,因为是英文,这里把中文的过程写下来,以便于参考。

关于axis2的包

关于axis2,官方提供了四种类型的包,分别为二进制包、war包、文档包和源文件包。 其中的二进制包包含了示例程序和一些jar包;war包是可以作为web应用部署到servlet container中的axis2服务包,它是apache axis2提供的服务管理的工具类web应用,所谓的axis2的安装即指的是在servlet container中安装此包;文档包不再多说;源码包也不再多说。
官方文档说使用axis2需要的资源:java5及以上、不小于11M的硬盘空间和随便一个操作系统。另外为了把二进制数据打包成war文件,需要安装不低于1.6.5的apache ant;为了构建源码包,需要安装不低于maven2.0.7的maven。

好了,下面就进入安装流程了,共有4步:
1. 下载
上 面提到的四个类型的资源包都可以下载,我这里只是下载了二进制包。对于下载到的axis2-1.6.0-bin.zip,我这里的解压目录为/home /enjiex/cube/axis-1.6.0,也即下面说的AXIS2_HOME,在windows上手动需要设置AXIS2_HOME环境变量,对 于linux用户来说就很方便了,只需要到AXIS2_HOME/bin下执行setenv.sh即可,当然前提是已经在系统中设置了 JAVA_HOME。这样就已经下载并配置好了AXIS2。

2. 启动axis2
已经上面的配置,就可以启动axis2了,进入到AXIS2_HOME/bin目录,即行如下脚本: 

  

axis2server.sh

  

如果在终端中看如下,就说明已启动成功。 

  [INFO] [SimpleAxisServer] Started   

  [SimpleAxisServer] Started   

  [INFO] Listening on port 8080

  

此时打开浏览器http://localhost:8080会看到如下效果:

 

在上面的页面上看到的就是当前AXIS2_HOME/repository/services里已安装的可用的服务(在此目录中看到的.aar文件即为服务包)。

3. 打包axis2.war并部署

打包axis2.war需要使用到apache ant,所以打包之前需要先安装apache ant。在终端上通过如下命令即可自动完成安装及设置。

1.sudo apt-get install ant1.7

  安装完成后,进入到AXIS2_HOME/webapp目录,我们会看到ant的build文件:build.xml,在此目录下运行如下命令打包: 

1.ant create.war

  打包成功后,会在AXIS2_HOME/dist目录下看到刚打的包文件axis2.war。在运行上面的ant命令时,会根据 build.xml文件中的指令,把AXIS2_HOME/repository目录中的模块和服务及AXIS2_HOME/conf /axis2.xml中的配置一并打包到axis2.war中。 


4.把axis2安装到servlet容器

把刚才打包好的axis2.war复制到servlet容器中的 webapps(tomcat)或deploy(jboss)目录中,当然也可以通过在servlet容器的配置文件中指定axis2.war文件的位置 来加载war包(在jboss中,只通过设置JBOSS_HOME/server/default/conf/jboss-server.xml中的 deploy来指定war文件位置的)。
然后重启servlet容器,成功的话,会在浏览器http://localhost:8080/axis2中看到如下所示,这其实就是启动了axis2的services服务器,并可以在此web应用中上传或删除务: 

 

 

点击“Services”链接,你会看到已安装了的服务,已成功安装了的服务会显示在avaliable service页面,如下:

 
如果服务在部署时报了错误,那么此服务会被当作失败的服务。点击该服务可以看到相应的失败信息。

在上面的主页面中,点击"Validate"链接来验证axis2服务是否都正确的启动。如果都已正确启动,会如下所示,表示axis2的核心服务库都已经加载:

 

在上面的主页面中,有一个"Administration"链接,进入后你会发现以下功能:

to check on the health of your Axis2 deployment.   
to change any parameters at run time.   
to upload new services into Axis2 [Service hot-deployment].

  进入管理页面时,会要求输入用户名和密码,axis2默认的用户名和密码分别为:admin/axis2。 

axis2提供了上传服务的接口,一旦按照axis2要求的服务规则实现了服务包(.aar文件),就可以在这个管理页面上把服务上传到axis2 服务器上。已上传的服务会存储在默认的服务目录,对于 axis2为说此目录为/axis2/WEB-INF/services目录中,上传的服务会即时生效,即不需要重启 servlet容器。因为axis2支持热部署,因此可以通过删除文件系统中服务目录中的服务包来删除一个服务,也可以直接把服务文件复制到服务目录中为 添加服务而不需要重启servlet容器。

[我是搬运工~~]http://www.cnblogs.com/macula/archive/2011/08/30/2159467.html