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 ...
随机推荐
- RING0,RING1,RING2,RING3
Intel的CPU将特权级别分为4个级别:RING0,RING1,RING2,RING3.Windows只使用其中的两个级别RING0和RING3,RING0只给操作系统用,RING3谁都能用.如果普 ...
- POJ 3468<线段树,区间add>
题目连接 //位运算 k<<1 相当于 k*2 k<<1|1 相当于 k*2+1 /* 修改区间内的值,并且维护区间和. 详见代码 */ #include<cstdio& ...
- Swift --> Map & FlatMap
转载自:https://segmentfault.com/a/1190000004050907 Map map函数能够被数组调用,它接受一个闭包作为参数,作用于数组中的每个元素.闭包返回一个变换后的元 ...
- iOS 开发之照片框架详解
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework.html 一. 概要 在 iOS 设备中,照片和视频是相当重 ...
- linux 查看进程 和 杀死进程
ps ax 显示当前系统进程的列表 PID TTY STAT TIME COMMAND ps aux 显示当前系统进程详细列表以及进程用户 USER PID %CPU %ME ...
- Python -- Web -- WSGI
WSGI:Web Server Gateway Interface 只要求Web开发者实现一个函数,就可以响应HTTP请求. # hello.py def application(environ, s ...
- 使用NGUI进行类似Button的操作
下面例子以Label和Sprite为例,进行说明如何在NGUI中对控件添加单击响应的事件方法. 首先在UIRoot下添加Label控件,然后Scene场景中右键Label-->Attach--& ...
- Win7与Ubuntu双系统时卸载Ubuntu的方法
Win7与Ubuntu双系统时卸载Ubuntu的方法 [日期:2010-03-26] 来源:Ubuntu社区 作者:Ubuntu编辑 [字体:大 中 小] 1. 下载MBRFix工具,放 ...
- 离线dfs CF div2 707 D
http://codeforces.com/contest/707/problem/D 先说一下离线和在线:在线的意思就是每一个询问单独处理复杂度O(多少多少),离线是指将所有的可能的询问先一次都处理 ...
- 加工生产调度(prod)
加工生产调度(prod) 题目描述 有n个部件需在A.B机器上加工,每个工件都必须经过先A后B两道工序. 已知:部件i在A.B机器上的加工时间分别为ai,bi. 问:如何安排n个工件的加工顺序,才能使 ...