使用XML通过Java类定义Web服务

日期: 2008-03-31 来源:TechTarget中国

  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方法。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐