杰瑞科技汇

Axis2 Webservice教程,如何快速上手开发?

Axis2 WebService 完整教程

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

Axis2 Webservice教程,如何快速上手开发?-图1
(图片来源网络,侵删)

目录

  1. 第一部分:环境准备
    • 1 安装 JDK
    • 2 下载 Axis2
    • 3 验证安装
  2. 第二部分:发布第一个 WebService (POJO 方式)
    • 1 创建服务类
    • 2 部署服务
    • 3 测试服务
  3. 第三部分:客户端调用 WebService
    • 1 使用 WSDL2Java 工具生成客户端代码
    • 2 编写客户端程序调用服务
  4. 第四部分:高级特性
    • 1 使用 ADB (Axis Data Binding) 开发服务
    • 2 使用 AXIOM (AXIs Object Model) 处理 SOAP 消息
    • 4 添加 WebService 模块 (Module) - 添加安全模块
  5. 第五部分:总结与展望

第一部分:环境准备

1 安装 JDK

Axis2 是一个 Java 项目,因此你需要安装 Java Development Kit (JDK),建议使用 JDK 8 或更高版本。

2 下载 Axis2

从 Apache Axis2 的官方下载页面获取最新的二进制发行版。

  • 下载地址:Apache Axis2 官方下载页
  • 下载 Binary Distribution (axis2-1.8.0-war.zip),这个包包含一个可以部署到 Tomcat 等应用服务器的 axis2.war 文件。

3 验证安装

我们将 Axis2 部署到 Tomcat 服务器上进行验证。

  1. 安装 Tomcat (如果尚未安装),下载并解压 Tomcat。
  2. 部署 Axis2:
    • 将下载的 axis2-1.8.0-war.zip 解压。
    • 找到其中的 axis2.war 文件。
    • axis2.war 复制到 Tomcat 的 webapps 目录下。
  3. 启动 Tomcat:
    • 进入 Tomcat 的 bin 目录,运行 startup.sh (Linux/Mac) 或 startup.bat (Windows)。
  4. 访问 Axis2 首页:
    • 打开浏览器,访问 http://localhost:8080/axis2/
    • 如果看到 Axis2 的欢迎页面,并能看到 "Axis2 Web Application" 和 "Validate Installation" 等链接,说明部署成功。

第二部分:发布第一个 WebService (POJO 方式)

POJO (Plain Old Java Object) 方式是最简单、最直观的部署方式,你只需要编写一个普通的 Java 类,Axis2 会自动将其发布为 WebService。

Axis2 Webservice教程,如何快速上手开发?-图2
(图片来源网络,侵删)

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 部署服务

  1. 创建服务目录:

    • 在 Tomcat 的 webapps/axis2/WEB-INF 目录下创建一个 services 文件夹。
    • services 文件夹下,为你创建的服务创建一个新文件夹,MyService
  2. 打包服务:

    Axis2 Webservice教程,如何快速上手开发?-图3
    (图片来源网络,侵删)
    • MyService.class 文件编译后,复制到 webapps/axis2/WEB-INF/services/MyService/ 目录下。
    • 为了让 Axis2 识别这是一个服务,你需要创建一个 services.xml 描述文件。
  3. 创建 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
  4. 重启 Tomcat:

    重启 Tomcat 服务器,让 Axis2 加载新的服务。

3 测试服务

  1. 访问 Axis2 的管理页面:http://localhost:8080/axis2/axis2-admin
  2. 在左侧导航栏点击 "Services"。
  3. 你应该能看到 MyService 已经列在已部署的服务中。
  4. 点击 "MyService" 链接,进入服务的测试页面。
  5. 你会看到 sayHelloadd 两个操作。
    • 测试 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 文件自动生成客户端存根代码。

  1. 获取 WSDL 地址:

    • 浏览器访问 http://localhost:8080/axis2/MyService?wsdl,这就是 MyService 的 WSDL 文件。
  2. 运行 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: 生成的代码存放的目录。
  3. 查看生成的代码:

    • 执行成功后,会生成一个 client-stubs 文件夹,里面包含了大量 Java 文件,包括:
      • MyServiceStub.java: 主要的客户端存根类,用于调用服务。
      • MyServiceCallbackHandler.java: 用于异步调用的回调处理类。
      • 各种 类:如 SayHello.java, Add.java 等,它们对应 WSDL 中的消息类型。

2 编写客户端程序调用服务

我们可以使用生成的 MyServiceStub.java 来调用服务了。

**`src/com/example/client/Client

分享:
扫描分享到社交APP
上一篇
下一篇