Axis2 WebService 完整教程
Axis2 是 Apache 组织下的一个高性能、功能强大的 WebService 引擎,它支持 SOAP 1.1、SOAP 1.2、RESTful 风格的服务,并且具有良好的扩展性和模块化设计。

目录
- 第一部分:环境准备
- 1 安装 JDK
- 2 下载 Axis2
- 3 验证安装
- 第二部分:发布第一个 WebService (POJO 方式)
- 1 创建服务类
- 2 部署服务
- 3 测试服务
- 第三部分:客户端调用 WebService
- 1 使用 WSDL2Java 工具生成客户端代码
- 2 编写客户端程序调用服务
- 第四部分:高级特性
- 1 使用 ADB (Axis Data Binding) 开发服务
- 2 使用 AXIOM (AXIs Object Model) 处理 SOAP 消息
- 4 添加 WebService 模块 (Module) - 添加安全模块
- 第五部分:总结与展望
第一部分:环境准备
1 安装 JDK
Axis2 是一个 Java 项目,因此你需要安装 Java Development Kit (JDK),建议使用 JDK 8 或更高版本。
- 下载地址:Oracle JDK 官网 或 OpenJDK 官网
- 安装完成后,配置环境变量
JAVA_HOME和PATH。
2 下载 Axis2
从 Apache Axis2 的官方下载页面获取最新的二进制发行版。
- 下载地址:Apache Axis2 官方下载页
- 下载 Binary Distribution (
axis2-1.8.0-war.zip),这个包包含一个可以部署到 Tomcat 等应用服务器的axis2.war文件。
3 验证安装
我们将 Axis2 部署到 Tomcat 服务器上进行验证。
- 安装 Tomcat (如果尚未安装),下载并解压 Tomcat。
- 部署 Axis2:
- 将下载的
axis2-1.8.0-war.zip解压。 - 找到其中的
axis2.war文件。 - 将
axis2.war复制到 Tomcat 的webapps目录下。
- 将下载的
- 启动 Tomcat:
- 进入 Tomcat 的
bin目录,运行startup.sh(Linux/Mac) 或startup.bat(Windows)。
- 进入 Tomcat 的
- 访问 Axis2 首页:
- 打开浏览器,访问
http://localhost:8080/axis2/。 - 如果看到 Axis2 的欢迎页面,并能看到 "Axis2 Web Application" 和 "Validate Installation" 等链接,说明部署成功。
- 打开浏览器,访问
第二部分:发布第一个 WebService (POJO 方式)
POJO (Plain Old Java Object) 方式是最简单、最直观的部署方式,你只需要编写一个普通的 Java 类,Axis2 会自动将其发布为 WebService。

1 创建服务类
创建一个简单的 Java 类,包含一个或多个公共方法,这些方法将被暴露为 WebService 的操作。
src/com/example/MyService.java
package com.example;
public class MyService {
public String sayHello(String name) {
return "Hello, " + name + "!";
}
public int add(int a, int b) {
return a + b;
}
}
2 部署服务
-
创建服务目录:
- 在 Tomcat 的
webapps/axis2/WEB-INF目录下创建一个services文件夹。 - 在
services文件夹下,为你创建的服务创建一个新文件夹,MyService。
- 在 Tomcat 的
-
打包服务:
(图片来源网络,侵删)- 将
MyService.class文件编译后,复制到webapps/axis2/WEB-INF/services/MyService/目录下。 - 为了让 Axis2 识别这是一个服务,你需要创建一个
services.xml描述文件。
- 将
-
创建
services.xml:- 在
webapps/axis2/WEB-INF/services/MyService/目录下创建一个META-INF文件夹。 - 在
META-INF文件夹下创建services.xml文件。 webapps/axis2/WEB-INF/services/MyService/META-INF/services.xml内容如下:
<service name="MyService"> <description> This is a simple POJO service. </description> <parameter name="ServiceClass">com.example.MyService</parameter> <operation name="sayHello"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </operation> <operation name="add"> <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </operation> </service>name: 服务的名称。ServiceClass: 你编写的 Java 类的全限定名。operation: 定义服务提供的操作(方法)。messageReceiver: 指定消息接收器,对于 RPC 风格的服务,使用RPCMessageReceiver。
- 在
-
重启 Tomcat:
重启 Tomcat 服务器,让 Axis2 加载新的服务。
3 测试服务
- 访问 Axis2 的管理页面:
http://localhost:8080/axis2/axis2-admin。 - 在左侧导航栏点击 "Services"。
- 你应该能看到
MyService已经列在已部署的服务中。 - 点击 "MyService" 链接,进入服务的测试页面。
- 你会看到
sayHello和add两个操作。- 测试
sayHello: 在输入框中输入你的名字(如 "Axis2"),点击 "Invoke" 按钮。 - 页面下方会显示 SOAP 请求和 SOAP 响应,响应内容应该是:
<ns:sayHelloResponse xmlns:ns="http://example.com"> <ns:return>Hello, Axis2!</ns:return> </ns:sayHelloResponse>
- 测试
第三部分:客户端调用 WebService
现在我们创建一个 Java 客户端来调用刚刚发布的 MyService。
1 使用 WSDL2Java 工具生成客户端代码
Axis2 提供了一个强大的代码生成工具 WSDL2Java,它可以根据服务的 WSDL 文件自动生成客户端存根代码。
-
获取 WSDL 地址:
- 浏览器访问
http://localhost:8080/axis2/MyService?wsdl,这就是MyService的 WSDL 文件。
- 浏览器访问
-
运行 WSDL2Java:
- 打开命令行,进入 Axis2 的
bin目录 (D:\apache-tomcat-9.0.65\webapps\axis2\WEB-INF\bin)。 - 执行以下命令:
wsdl2java.bat -uri http://localhost:8080/axis2/MyService?wsdl -p com.example.client -ss -sd -o client-stubs
wsdl2java.bat: Windows 下的脚本。-uri: WSDL 文件的 URL。-p com.example.client: 生成的客户端代码的包名。-ss: 生成服务端存根 (Server-side stubs),可选。-sd: 生成服务描述 (Service Descriptor),可选。-o client-stubs: 生成的代码存放的目录。
- 打开命令行,进入 Axis2 的
-
查看生成的代码:
- 执行成功后,会生成一个
client-stubs文件夹,里面包含了大量 Java 文件,包括:MyServiceStub.java: 主要的客户端存根类,用于调用服务。MyServiceCallbackHandler.java: 用于异步调用的回调处理类。- 各种 类:如
SayHello.java,Add.java等,它们对应 WSDL 中的消息类型。
- 执行成功后,会生成一个
2 编写客户端程序调用服务
我们可以使用生成的 MyServiceStub.java 来调用服务了。
**`src/com/example/client/Client
