以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址

任务要求:

使用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框架)的更多相关文章

  1. 使用XFire+Spring构建Web Service(一)——helloWorld篇

    转自:http://www.blogjava.net/amigoxie/archive/2007/09/26/148207.html原文出处:http://tech.it168.com/j/2007- ...

  2. 使用XFire+Spring构建Web Service

    XFire是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service各项标准协议,帮助你方便快速地开发Web Service应用. 相 对于Axis来说,目 ...

  3. XFire+Spring构建Web Service经验总结

    使用工具 MyEclipse:6.5 ,tomcat6.x. 1.新建web项目,要导入用的包: 2程序结构: 3 web.xml配置文件 <?xml version="1.0&quo ...

  4. XFire构建web service客户端的五种方式

    这里并未涉及到JSR 181 Annotations 的相关应用,具体的三种方式如下 ① 通过WSDL地址来创建动态客户端 ② 通过服务端提供的接口来创建客户端 ③ 使用Ant通过WSDL文件来生成客 ...

  5. MyEclipse JAX-WS Web Service

    在Myeclipse8.5下开发Web service程序,目前系统支持的开发框架有3个,JAX-WS,REST(JAX-RS),XFire.其中系统建议不要使用XFire 的框架,可能是要被淘汰了( ...

  6. 2.3 Apache Axis2 快速学习手册之 ADB 构建Web Service

    使用ADB生成服务(根据ADB 命令将wsdl 文件还原成Java代码) 要使用Axis2数据绑定框架(ADB)生成和部署服务,请执行以下步骤. 通过在Axis2_HOME / samples / q ...

  7. 2.1 Apache Axis2 快速学习手册之 POJO 构建Web Service

    1. 准备:创建一个Maven Web App 项目 这里让我们使用Maven 模板创建一个Web App 项目 1. New------> Maven Project 2. 使用默认配置,点击 ...

  8. Eclipse利用Axis2插件构建Web Service并测试

    在学习Web Service的时候,从网上找到前辈的博客http://www.cnblogs.com/hexinlin/p/3358558.html,并依此文的方法按部就班:编写欲发布的java类He ...

  9. 2.5 Apache Axis2 快速学习手册之JiBx 构建Web Service

    5. 使用JiBX生成服务(通过JIBX 命令将wsdl 生成 services ) 要使用JiBX数据绑定生成和部署服务,请执行以下步骤. 通过在Axis2_HOME / samples / qui ...

随机推荐

  1. C++左值

    C++左值 左值参数是可被引用的数据对象.比如,变量,数组元素,结构成员,引用和解引用指针 非左值包含字面常量(用引号括起的字符串除外,它们是由地址表示的)和包含多项的表达式 在C语言里面左值最初指的 ...

  2. Math类的round方法小解

    在Math类中有三个关于“四舍五入”的静态方法(ceil,floor,round): ① Math.ceil(number) 向上取整,Math.ceil(11.2) 结果:12            ...

  3. Moya 浅析

    Moya是一个高度抽象的网络库,他的理念是让你不用关心网络请求的底层的实现细节,只用定义你关心的业务.且Moya采用桥接和组合来进行封装(默认桥接了Alamofire),使得Moya非常好扩展,让你不 ...

  4. sql 指定范围 获取随机数

    DECLARE @nMinimumCount INT= 1DECLARE @nMaximumCount INT= 100SELECT abs(CHECKSUM(NEWID()))%(@nMaximum ...

  5. JspWriter与PrintWriter的关系

    一.JspWriter与PrintWriter的关系: 1.都是继承自java.io.Writer类. JspWriter可以在JSP页面中直接用out对象输出.可以用pageContext.getO ...

  6. 学习笔记——桥接模式Bridge

    桥接模式的目的是在设计初,就将实现与接口分离,在以后实现发生变化时,只需要改变传递的实现对象,在保持接口一致的情况,达到实现的变更. 在OperationInterface中就调用实现的方法imp.O ...

  7. Android平台设计规范整理(尺寸+组成元素+字体+滑块)

    转自:http://www.ui.cn/project.php?id=12394

  8. HDU 5889 (最短路+网络流)

    Barricade Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  9. PPTP-VPN日志功能,记录用户登录时间,流量统计,IP地址等信息

    我们先看两个文件 /etc/ppp/ip-up /etc/ppp/ip-down 这两个文件为shell脚本,当PPTP用户连接或者断开时分别执行这两个文件,并且会带相应的参数 这些参数有 $PEER ...

  10. Android Studio 修改主题

    http://jingyan.baidu.com/article/6f2f55a18040aeb5b93e6cb4.html