Axis2 WebService 教程
目录
-
第一部分:准备工作
(图片来源网络,侵删)- 1 什么是 Axis2?
- 2 环境要求
- 3 下载并安装 Axis2
- 4 在 Eclipse 中配置 Tomcat 服务器
-
第二部分:创建并发布第一个 WebService
- 1 创建动态 Web 项目
- 2 编写服务端 Java 代码 (POJO)
- 3 打包服务 (生成 .aar 文件)
- 4 部署 Axis2 到 Tomcat
- 5 发布 WebService
- 6 测试 WebService
-
第三部分:客户端调用 WebService
- 1 创建 Java 客户端项目
- 2 生成客户端代码
- 3 编写客户端调用代码
- 4 运行客户端测试
-
第四部分:进阶主题
- 1 使用注解方式开发服务 (
@WebService) - 2 处理复杂数据类型
- 3 传递和接收 XML 数据
- 1 使用注解方式开发服务 (
-
第五部分:常见问题与总结
(图片来源网络,侵删)
第一部分:准备工作
1 什么是 Axis2?
Apache Axis2 是一个开源的、高性能的、功能强大的 WebService 引擎和框架,它支持 SOAP 1.1 和 1.2,以及 RESTful 风格的 WebService,Axis2 是 Axis1 的下一代产品,在架构和性能上都有显著提升。
2 环境要求
- JDK: 1.8 或更高版本
- IDE: Eclipse for Java EE Developers (或类似版本)
- Web 服务器: Apache Tomcat 9.x (或其他兼容的 Servlet 容器)
- Axis2: 1.7.9 (稳定版)
3 下载并安装 Axis2
- 下载 Axis2: 访问 Apache Axis2 官方下载页面。
- 选择版本: 下载 Axis2 Standard Binary Distribution (
axis2-1.7.9-war.zip),这个版本包含了一个可以部署到 Tomcat 的.war文件。 - 解压: 将下载的
.zip文件解压到一个目录,D:\tools\axis2-1.7.9。
4 在 Eclipse 中配置 Tomcat 服务器
- 打开 Eclipse,菜单栏选择
Window->Preferences->Server->Runtime Environments。 - 点击
Add...按钮。 - 选择
Apache->Apache Tomcat v9.0,点击Next。 - 选择 Tomcat 的安装目录(如果你还没有安装,可以先下载一个并解压),然后点击
Finish。 - 你可以在 Eclipse 中创建一个新的服务器实例了,右键点击
Servers视图,选择New->Server,选择你刚刚配置的 Tomcat v9,然后完成。
第二部分:创建并发布第一个 WebService
我们将创建一个简单的 "Hello World" WebService。
1 创建动态 Web 项目
- 在 Eclipse 中,右键点击
Package Explorer->New->Dynamic Web Project。 - 输入项目名称,
Axis2WebServiceDemo。 - 选择 Target runtime 为你配置好的
Apache Tomcat v9。 - 点击
Finish。
2 编写服务端 Java 代码 (POJO)
Axis2 支持简单的 POJO (Plain Old Java Object) 作为 WebService,我们创建一个 Java 类。
- 在
src目录下,创建一个包,com.example.service。 - 在该包下创建一个 Java 类
HelloService.java。
package com.example.service;
public class HelloService {
// 这是一个简单的公共方法,Axis2 会自动将其暴露为 WebService 操作
public String sayHello(String name) {
if (name == null || name.trim().isEmpty()) {
return "Hello, Stranger!";
}
return "Hello, " + name + "!";
}
}
说明:

- 这个类没有继承任何特定类或实现任何接口。
- 公共方法
sayHello将自动成为 WebService 的一个操作。 - 方法的参数和返回值会被自动序列化为 XML。
3 打包服务 (生成 .aar 文件)
Axis2 使用 .aar (Axis2 Archive) 文件作为 WebService 的部署包。
-
在 Eclipse 中,右键点击你的项目
Axis2WebServiceDemo->Export。 -
选择
Web->WAR file,点击Next。 -
选择 Destination (导出路径,
D:\temp\Axis2WebServiceDemo.war),点击Finish。 -
我们需要将
.war文件解压,然后把我们的 Java 类.class文件放进去,然后重新打包成.aar,这个过程有点繁琐,有一个更简单的方法:- 推荐方法: 使用 Axis2 自带的
axis2-aar-maven-plugin或直接使用 IDE 插件,但为了简单,我们手动操作: a. 用解压工具打开刚刚导出的Axis2WebServiceDemo.war文件。 b. 将WEB-INF/classes/com/example/service/HelloService.class复制出来。 c. 将 Axis2 根目录下的lib目录(D:\tools\axis2-1.7.9\lib)下的所有.jar文件也复制出来。 d. 创建一个新的.zip文件,命名为HelloService.aar。 e. 将HelloService.class和所有lib下的.jar文件(以及META-INF目录,如果有的话)作为文件(而不是文件夹)添加到HelloService.aar的根目录下。 f. 重要: 将HelloService.aar的扩展名改为.zip,然后解压它,进入解压后的目录,删除lib文件夹(因为.aar打包时会自动处理依赖),然后重新选中所有文件,压缩成一个新的HelloService.aar文件。
这个手动方法非常容易出错,强烈推荐使用下面的 IDE 插件方法:
IDE 插件方法 (更简单):
- 在 Eclipse 中安装 "Axis2 Service Archiver" 插件。 (
Help->Eclipse Marketplace...搜索并安装)。 - 安装后,右键点击你的项目
Axis2WebServiceDemo->Export->Axis2 Service->Axis2 Service Archive。 - 在
Input .class files页面,点击Add External Classes,添加你的HelloService.class文件。 - 在
Service Name页面,输入服务名HelloService。 - 在
Target Archive页面,选择导出路径,D:\temp\HelloService.aar。 - 点击
Finish,这样就生成了.aar文件。
- 推荐方法: 使用 Axis2 自带的
4 部署 Axis2 到 Tomcat
- 将
axis2-1.7.9-war.zip中解压出的axis2.war文件复制到你的 Tomcat 的webapps目录下(apache-tomcat-9.0.65\webapps)。 - 启动 Tomcat 服务器(在 Eclipse 的
Servers视图中右键点击你的 Tomcat 实例 ->Start)。 - Tomcat 会自动解压
axis2.war,访问http://localhost:8080/axis2/,如果看到 Axis2 的欢迎页面,说明部署成功。
5 发布 WebService
- 将我们刚刚生成的
HelloService.aar文件复制到 Tomcat 的webapps/axis2/WEB-INF/services目录下。 - 刷新 Axis2 的管理页面 (
http://localhost:8080/axis2/),你会看到一个 "Upload Service" 的链接。 - 点击它,然后点击 "Browse..." 选择你的 `
