XML 功能强大,使用它能够定义任何事物。更重要的是,它是使大多数应用程序具有外部可读格式的基础,对于本系列文章所使用的 Axis2 和 JiBX 尤为显著。随着 web 服务的日益普及,使用 Axis2 和 JiBX 将原来的 Java 项目转换成功能全面的 web 服务也显得格外紧迫。以往,web 服务都是根据一个服务和一个单一的类自动生成的,而现在开发人员可以通过已有项目中的各种 Java 类生成一个或多个服务。本文使用 XML 通过已有 Java 类定义了一个 web 服务。
简介
web 服务在日常开发中重要性与日俱增,Axis2 也成为了倍受人们欢迎的开发 web 服务的开放源码平台。Axis2 使用 Java 语言编写,它能利用了 JiBX(一种框架,用于将XML和Java绑定在一起)的自由性。假设您有一个含有大量 Java 类和数据结构的 Java 项目,而且不想打乱或者更改它们。JiBX 会帮助您实现这一切,它把在 Axis2 中使用的 XML 数据与 Java 类绑定在一起。这样做的好处是代码易于维护,因为 web 服务只使用已经开发好、可靠、真正的 Java 类。
系统需求
要学习这个分为两部分的系列文章,需要如下软件:
Axis2,binary and WAR 版 JiBX 1.1 Geronimo 1.1.1 下载完上述所有软件后,解压 Geronimo 并键入:Java -jar /bin/server.jar。
然后,为部署 axis2.war 文件,将 axis2 文件复制到 /deploy 目录。
解压 Axis2 二进制文件,将 AXIS2_HOME 环境变量设置为 Axis2 二进制文件解压的目录(本例中设置为 c:appsaxis2-1.1)。然后解压 JiBX,并将 /lib 目录的所有 JAR 文件(除了 stax-api.jar 文件之外,因为 Axis2 已经含有了 stax-api.jar 文件)复制到 /lib 目录下。
这样就设置好了环境。
Java 类
这里提供了一些 Java 类,用于构成一个简单的 web 服务 Java 项目。使用什么样的 Java 类并无大障,您也可以使用自己创建的 Java 类。本文使用的项目含有三个类:OneWayRequest 类、TwoWayRequest 类和 TwoWayResponse 类。按顺序看看每个类,我们先从 OneWayRequest 类开始(参见清单 1)。
清单 1. OneWayRequest Java 类
package com.ibm.devWorks.XML.simpleService;
public class OneWayRequest {
protected String requestData;
public String getRequestData() {
return this.requestData;
}
public void setRequestData(String requestData) {
this.requestData = requestData;
}
}
上面的代码中只含有一个字段,即 requestData,它包含了请求的数据。该类有两个方法:一个用于设置字段值,另一个用于检索字段值。
接下来再看一看清单 2 中的 TwoWayRequest 类。
清单 2. TwoWayRequest Java 类
package com.ibm.devWorks.XML.simpleService;
public class TwoWayRequest {
protected String echoString;
protected boolean booolean;
public boolean getBooolean() {
return this.booolean;
}
public void setBooolean(boolean booolean) {
this.booolean = booolean;
}
public String getEchoString() {
return this.echoString;
}
public void setEchoString(String echoString) {
this.echoString = echoString;
}
}
这个类要稍长一点,它定义了两个字段:一个是 echoString,另一个是 booolean。与第一个类相同,该类为每个字段都定义了一个 getter 和一个 setter 方法。