MyEclipse构建Web Service(Xfire框架)
以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址
任务要求:
使用Xfire实现一个简单的CalculatorWebService,计算器的加减乘除的算法的webservice,作业应当包括相关的实现软件代码以及对应的WSDL。
环境搭建:
MyEclipse 8.5,XFire 1.2,Tomcat 6.0
XFire下载地址:http://xfire.codehaus.org/Download,下载时选择Binary Distribution in zip package (xfire-distribution-1.2.6.zip),解压缩之后lib文件夹中包含了所有的jar文件。
Service创建
1、新建Service项目:File—New—Web Service Project,项目名称为“CalculatorWebService ”。在Framework中选择XFire,虽然已经废弃,但是可以导入自己下载的lib文件使用,然后Next—Next—Next—finish,均默认,则项目创建成功。

2、导入xfire的外部jar。将xfire解压缩后目录下/xfire-distribution-1.2.6/xfire-1.2.6/lib下所有jar以及/xfire-distribution-1.2.6/xfire-1.2.6下的xfire-all-1.2.6.jar,全部拷贝到项目文件夹/MyEclipse/HelloWorldService/WebRoot/WEB-INF/lib下。
3、创建Service类。src下新添一个package,名为“server”;server包下新建一个class,名为“CalculatorWebService ”,添加代码如下。该class实现一个简单的计算器程序,带了一个字符串类型参数,返回一个字符串。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package server;/** * * 项目名称:CalculatorWebService * 类名称:CalculatorService * 类描述:计算机webservice * 创建人:王少帅 * 创建时间:2013-12-12 上午10:23:31 * @version */public class CalculatorWebService { //加法 public float plus(float x, float y) { return x + y; } //减法 public float minus(float x, float y) { return x - y; } //乘法 public float multiply(float x, float y) { return x * y; } //除法 public float divide(float x, float y) { if(y!=0) { return x / y; } else return -1; } } |
4、创建Service。项目名称右键—New—Other—Web Services—Web Service,--Next。


在Strategy选择Create web service from java bean,--Next。

Service name也取为“CalculatorWebService”,实现方式选择java bean implementation class only,Service impl.class则选择刚才创建的server.CalculatorWebService,--Next--finish。
5、将上面创建的Service部署到tomcat中(如下图),启动tomcat server,在浏览器中输入http://localhost:8080/CalculatorWebService/services/CalculatorWebService?wsdl,(分别代表服务器名称:端口号/项目名称/services/服务名称),则可以看到自动生成的wsdl文件。

以上的过程就是把服务器端做好了,接下来就要做客户端了。
客户端创建
1、客户端的配制以及调用有两种方法:一种是自动生成一些代码接口,然后直接调用;一种是手写一些方法来进行调用。手写代码之前,一定要把http client library 的包加进来,以及一些相应的xfile的核心包,包有以下几个:XFire 1.2 Core libraries,XFire1.2 HTTP Client libraries,XFire1.2 JaxB2 libraries。加入了以上的三个包以后,然后可以写一个测试的main方法来进行测试调用服务方法。
2、这里使用自动生成客户端的方法,先导入外部jar。项目右键---Properities—java bulid path----Libraries—add External JARs,把Xfire中lib包下的jar都导入。

3、创建一个新的Client项目:File—New—Web Service Project,项目名称为“HelloWorldClient”,Framework同样选择Xfire,--Next—Next—finish,注意在配置Library的时候,要勾上XFire 1.2 Core libraries,XFire1.2 HTTP Client libraries,XFire1.2 JaxB2 libraries这几个包,如下:

4、创建一个web service client:项目名称右键—New—Other—Web Services—Web Service Client—next—next,在WSDL URL下输入刚才http://localhost:8080/HelloWorldService /services/HelloWorldService?wsdl,然后next---finish。

5、客户端项目文件夹下自动生成出来了一些有用的接口, 一个方法一个接口, 就可以直接拿来用了。
这里我们要注意的一点是,一定要开着tomcat的服务器才行,因为webservice服务器端必须运行!
在CalculatorWebServiceClient 的main方法中,调用下CalculatorWebServicePortType service中的方法:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
public static void main(String[] args) throws IOException { CalculatorWebServiceClient client = new CalculatorWebServiceClient(); //create a default service endpoint CalculatorWebServicePortType service = client.getCalculatorWebServiceHttpPort(); //TODO: Add custom client code here // //service.yourServiceOperationHere(); String s1,s2; BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); System.out.println("请输入您要操作的数据!"); s1 = bufferedReader.readLine(); float a = Float.parseFloat(s1); s2 = bufferedReader.readLine(); float b = Float.parseFloat(s2); System.out.println(service.plus(a, b)); System.out.println("test client completed"); System.exit(0); } |
运行结果如下:

MyEclipse构建Web Service(Xfire框架)的更多相关文章
- 使用XFire+Spring构建Web Service(一)——helloWorld篇
转自:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html原文出处:http://tech.it168.com/j/2007- ...
- 使用XFire+Spring构建Web Service
XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用. 相 对于Axis来说,目 ...
- XFire+Spring构建Web Service经验总结
使用工具 MyEclipse:6.5 ,tomcat6.x. 1.新建web项目,要导入用的包: 2程序结构: 3 web.xml配置文件 <?xml version="1.0&quo ...
- XFire构建web service客户端的五种方式
这里并未涉及到JSR 181 Annotations 的相关应用,具体的三种方式如下 ① 通过WSDL地址来创建动态客户端 ② 通过服务端提供的接口来创建客户端 ③ 使用Ant通过WSDL文件来生成客 ...
- MyEclipse JAX-WS Web Service
在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire.其中系统建议不要使用XFire 的框架,可能是要被淘汰了( ...
- 2.3 Apache Axis2 快速学习手册之 ADB 构建Web Service
使用ADB生成服务(根据ADB 命令将wsdl 文件还原成Java代码) 要使用Axis2数据绑定框架(ADB)生成和部署服务,请执行以下步骤. 通过在Axis2_HOME / samples / q ...
- 2.1 Apache Axis2 快速学习手册之 POJO 构建Web Service
1. 准备:创建一个Maven Web App 项目 这里让我们使用Maven 模板创建一个Web App 项目 1. New------> Maven Project 2. 使用默认配置,点击 ...
- Eclipse利用Axis2插件构建Web Service并测试
在学习Web Service的时候,从网上找到前辈的博客http://www.cnblogs.com/hexinlin/p/3358558.html,并依此文的方法按部就班:编写欲发布的java类He ...
- 2.5 Apache Axis2 快速学习手册之JiBx 构建Web Service
5. 使用JiBX生成服务(通过JIBX 命令将wsdl 生成 services ) 要使用JiBX数据绑定生成和部署服务,请执行以下步骤. 通过在Axis2_HOME / samples / qui ...
随机推荐
- OpenGL一些函数详解(二)
OpenGL ES顶点数据绘制技巧 在OpenGL中,绘制一个长方体,需要将每个顶点的坐标放在一个数组中.保存坐标时有一些技巧(由于字母下标不好表示,因此将下标表示为单引号,如A1将在后文中表示为A' ...
- Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图
Android上掌纹识别第一步:基于OpenCV的6种肤色分割 源码和效果图 分类: OpenCV图像处理2013-02-21 21:35 6459人阅读 评论(8) 收藏 举报 原文链接 ht ...
- encodeURIComponent与URLDecoder.decode用法
在输入地址栏时有时一些信息需要在地址栏看不见,我们就需要对其信息在前台转码后台解码 js:encodeURIComponent编码与解码 今天在js往jsp和servlet传参的时候出现:JavaSc ...
- iframe2016/4/12
js操作iframe contentWindow 在服务器环境下测试contentDocument二种方法的区别子级iframe修改父级元素内容window.parentwindow.top与w ...
- android 学习之RecyclerView
RecyclerView:ListView的升级版,它提供了更好的性能而且更容易使用.该控件是一个可以装载大量的视图集合,并且可以非常效率的进行回收和滚动.当你list中的元素经常动态改变时可以使用R ...
- CodeForces 567B Berland National Library
Description Berland National Library has recently been built in the capital of Berland. In addition, ...
- 微信小程序Server端环境配置
主要内容:1. SSL免费证书申请步骤2. Nginx HTTPS 配置3. TLS 1.2 升级过程 微信小程序要求使用 https 发送请求,那么Web服务器就要配置成支持 https,需要先申请 ...
- javascript 手机号码正则表达式验证函数
代码如下: function checkMobile(){ var sMobile = document.mobileform.mobile.value if(!(/^1[3|4|5| ...
- 数值标记问题 离线+树状数组 HDU 3938 + HDU 3333
HDU 3938 题目大意:给你一个长度为n的数组a,定义区间[l,r]的val为区间内所有不同的数值之和.现在有m个询问,每次询问一个区间,问区间的val是多少. 思路:将所有的询问按照右端点排序. ...
- filters
http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/admin_hbase_filtering.h ...