一、搭建 Axis + Tomcat + Eclipse 平台:
见 《Axis + Tomcat + Java Eclipse 配置方法》。
二、SOAP & AXIS:
SOAP 是种基于 XML 的通信协议,通过编码格式以方便跨平台程序间通信。Axis 包括 SOAP 引擎,即一种构建客户端、服务端、网关等 SOAP 流程的框架。AXIS 扩展支持 WSDL,即网络服务描述语言,并支持 java2wsdl 和 wsdl2java,即通过 WSDL 描述生成 JAVA 类,并包含监视 TCP/IP 包的工具。
三、服务器端开发:
建立工程,服务器端代码如下,最简单的服务中代码只需要包含一个服务类,一个方法:
package com.libo.WebService;
public class WebServiceWork {
public String SayHello (String UserName ) {
return “Hello “ + UserName;
}
}
1、人工生成 AAR 包:
在工程上建 META-INF 文件夹,下建 services.xml 文件:
<service name = “LiBoWebServ”>
<description>
This is a Web Service with SayHello Method.
</description>
<parameter name = “ServiceClass” locked = “false”>
com.libo.WebService.WebServiceWork
</parameter>
<operation name = “SayHello”>
<messageReceiver class = “org.apache.axis2.rpc.receivers.RPCMessageReceiver” />
</operation>
</service>
其中 Service Name 定义服务名称,description 是服务的文本描述,名称为 ServiceClass 的 parameter 指明提供服务的类,类名称要包名加类名写完整,operation 指明服务方法,并指定用 RPC 方式接收 SOAP 请求,并与 SOAP 响应通信。
图 1 Axis2 体系
将工程导出为 JAR 包,导出后后缀名改为 aar
2、Axis2 Service Archiver 生成 AAR 包:
Eclipse,File -> New -> Other -> Axis2 Wizards -> Axis2 Service Archiver。Class File Location 处指定到代码中 packagename 生成的目录的上一级,比如 com 文件夹的上一级,如 bin。后面都让它自动生成,到 Generate the Service XML file 步,服务名称自定,Class name 填写完整的 packagename.classname,然后点 load,读出方法列表,勾选要暴露的方法。而后指定 AAR 文件生成后存放的位置,选择 %tomcat%/webapps/axis2/WEB-INF/services,完成。注意一个完整的 AAR 包文件结构如下:
./packagename/classname.class
./META-INF/services.xml
./META-INF/services.wsdl
四、服务器端部署:
若是使用 ASA 工具生成 AAR 包,则部署完成。若是人工生成 AAR 包,则需要本步部署。部署时,将 AAR 文件放入 %tomcat%/webapps/axis2/WEB-INF/services 下,也可使用 Axis2 的 Upload Service 工具,到 http://localhost:8080/axis2,进 Administration,工具选择 Upload Service,选择该 AAR 文件,后 Upload。