使用Axis2和JiBX将Java类转换成Web服务,第1部分

使用Axis2和JiBX将Java类转换成Web服务,第1部分: 使用XML通过Java类定义Web服务

本文配套源码

简介

Web 服务在日常开发中重要性与日俱增,Axis2 也成为了倍受人们欢迎的开发Web 服务的开放源码平台。Axis2 使用Java 语言编写,它能利用了 JiBX(一种框架,用于将XML和Java绑定在一起)的自由性。假设您有一个含有大量 Java 类和数据结构的 Java 项目,而且不想打乱或者更改它们。JiBX 会帮助您实现这一切,它把在 Axis2 中使用的 XML 数据与 Java 类绑定在一起。这样做的好处是代码易于维护,因为 Web 服务只使用已经开发好、可靠、真正的 Java 类。

本文介绍了将在本系列中使用的 Java 类,并解释了如何生成能准确描述这些 Java 类的 Web 服务描述语言(Web Services Description Language,WSDL)和 JiBX 定义。本系列的第 2 部分将使用 WSDL 和 JiBX XML 文档创建一个 Web 服务的 Java 实现,该 Web 服务使用这个 Java 类作为数据绑定。

系统需求

要学习这个分为两部分的系列文章,需要如下软件:

Axis2,binary and WAR 版,可从 Axis2 主页下载。

JiBX 1.1,可以从 JiBX SourceForge 页面下载。

Geronimo 1.1.1,可以从 Geronimo 主页下载。

下载完上述所有软件后,解压 Geronimo 并键入:java -jar <geronimo-home>/bin/server.jar。

然后,为部署 axis2.war 文件,将 axis2 文件复制到 <geronimo-home>/deploy 目录。

解压 Axis2 二进制文件,将 AXIS2_HOME 环境变量设置为 Axis2 二进制文件解压的目录(本例中设置为 c:\apps\axis2-1.1)。然后解压 JiBX,并将 <jibx-home>/lib 目录的所有 JAR 文件(除了 stax-api.jar 文件之外,因为 Axis2 已经含有了 stax-api.jar 文件)复制到 <axis2-home>/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 方法。

清单 3 显示了最后一个类,即 TwoWayResponse 类。

清单 3. TwoWayResponse Java 类

package com.ibm.devWorks.xml.simpleService;
public class TwoWayResponse {
protected String echoString;
protected boolean invertedBoolean;
public boolean getInvertedBoolean() {
return this.invertedBoolean;
}
public void setInvertedBoolean(boolean invertedBoolean) {
this.invertedBoolean = invertedBoolean;
}
public String getEchoString() {
return this.echoString;
}
public void setEchoString(String echoString) {
this.echoString = echoString;
}
}

这个类与前一个 TwoWayRequest 类相当类似,不过这是没有必要的。响应类中可能会包含一项数据库记录中的一些数据项。这样,Java 类就完成了! 接下来,我们将介绍用于将这些类作为 Web 服务公开的 WSDL。

时间: 2024-09-17 18:11:48

使用Axis2和JiBX将Java类转换成Web服务,第1部分的相关文章

使用Axis2和JiBX将Java类转换成Web服务,第2部分

使用Axis2和JiBX将Java类转换成Web服务,第2部分: 把XML转换成功能全面的Web服务 本文配套源码 简介 Apache Axis2 提供了好几种 XML 解决方案,可以轻松的开发功能强大的 Web 服务.Axis2 是实现 Web 服务的一个非常不错的选择.由于 Apache Axis2 和 Apache Geronimo duo 是免费而且开放源码的,因此可以考虑使用这两者. 在本系列的前一部分中,我向您介绍了在本系列两篇文章中使用到的 Java 类.我们通过 WSDL 将这些

一个java的DES加解密类转换成C#

原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //import java.util.regex.Pattern; //import java.util.Hashtable; import javax.crypto.*; import javax.crypto.spec.*; import sun.misc.*; /** * des加密解密 */ pu

java-有没有能把Java源代码转换成C源代码的工具

问题描述 有没有能把Java源代码转换成C源代码的工具 类似于GWT能把Java转换成JavaScriptXMLVM能把多种程序语言转换成XML文档 解决方案 貌似是没有,这个稍微有点复杂了.建议直接找个会C和Java的人帮你写...

responsebody-求springmvc中的@ResponseBody怎么配置,才能将自定义的po类转换成json格式

问题描述 求springmvc中的@ResponseBody怎么配置,才能将自定义的po类转换成json格式 在springmvc中,我想通过@ResponseBody的方式来返回json格式的数据,在mvc:annotation-driven/mvc:annotation-driven中应该怎么配置,网上找了很久没找到,我用的sprin版本是4.2.5的 我的Controller是这样的 前台的js是这么写的 在这个配置文件里面是不是还要配置一下啊?具体怎么配置,求教一下,小弟感激不尽. 解决

java-在JAVA JAXWS中使用WSGEN命令让JAVA文件转换成WS文件时,怎么不失败了,求解惑。

问题描述 在JAVA JAXWS中使用WSGEN命令让JAVA文件转换成WS文件时,怎么不失败了,求解惑. //java文件 package com.rdt.ws.project; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List; import com.mongodb.*; import com.rdt.ws.domain.TabFile; import javax.j

将泛类型集合List类转换成DataTable

/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list">泛类型集合</param> /// <returns></returns> public static DataTable ListToDataTable<T>(List<T> entitys) { //检查实体集合不能为空 if (

将RFT录制的Java脚本转换成可读性好的测试用例

该方法首先通过调用 RFT 的 CMD 命令行接口实现测试脚本的录制,生成 Java 脚本:然后,解析 Java 脚本中的关键字.对象.操作等信息,将 Java 脚本转化成可视化的表格:最后,将可视化的表格经过处理转化成 HTML 文件保存.相信通过该方法可以有地提高测试人员的测试效率,减少测试人员的工作量,在实践中这种自动化方法也有着较好的应用效果. 随着现代信息技术的飞速发展,软件业竞争日趋激烈,软件系统日益复杂,对于软件功能.性能的要求不断提高,同时软件推出新版本的时间不断缩短.在这种情况

免费程序IcoMoon:把矢量图转换成Web字体

文章描述:在这篇教程中,我们将看看如何使用一个免费的Web应用程序IcoMoon将矢量图转换成Web字体.然后在看看如何使用生成的字体通过css应用到Web页面中. 我已经制为网站制作了一些优雅的图标,并且在新的网站和老的iPad上进行了测试.正常尺寸下,布局看看上去一切OK,但的将页面进行放大显示,我却发现我的icon变得模糊不清,但是基于文本的标题依然清晰可见.在具有Retina显屏的iPad上,这些图标看上去都不清晰,即使在没有进行任何放大的情况之下. 我第一想法就是创建双倍大小的Spri

如何把你的图标转换成WEB字体

  我已经制为网站制作了一些优雅的图标,并且在新的网站和老的iPad上进行了测试.正常尺寸下,布局看看上去一切OK,但的将页面进行放大显示,我却发现我的icon变得模糊不清,但是基于文本的标题依然清晰可见.在具有Retina显屏的iPad上,这些图标看上去都不清晰,即使在没有进行任何放大的情况之下. 我第一想法就是创建双倍大小的Sprite图,然后通过css样式,设置他们只显示二分之一尺寸.虽然这样的方法让他们在Retina屏上显示的大小是正常的,一旦你开始放大屏幕,图标又变得模糊不清.但文本还