• MyEclipse构建Web Service(Xfire框架)


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

     

    任务要求

    使用Xfire实现一个简单的CalculatorWebService,计算器的加减乘除的算法的webservice,作业应当包括相关的实现软件代码以及对应的WSDL

     

    环境搭建

    MyEclipse 8.5XFire 1.2Tomcat 6.0

    XFire下载地址:http://xfire.codehaus.org/Download,下载时选择Binary Distribution in zip package xfire-distribution-1.2.6.zip),解压缩之后lib文件夹中包含了所有的jar文件。

     

    Service创建

     

    1、新建Service项目:FileNewWeb Service Project,项目名称为“CalculatorWebService ”。在Framework中选择XFire,虽然已经废弃,但是可以导入自己下载的lib文件使用,然后NextNextNextfinish,均默认,则项目创建成功。

     

     

    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。项目名称右键—NewOtherWeb ServicesWeb Service--Next。

     

     

        Strategy选择Create web service from java bean--Next

     

        Service name也取为“CalculatorWebService”,实现方式选择java bean implementation class onlyService 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 librariesXFire1.2 HTTP Client librariesXFire1.2 JaxB2 libraries。加入了以上的三个包以后,然后可以写一个测试的main方法来进行测试调用服务方法。

    2、这里使用自动生成客户端的方法,先导入外部jar。项目右键---Properitiesjava bulid path----Librariesadd External JARs,把Xfirelib包下的jar都导入。

     

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

     

     

          4、创建一个web service client:项目名称右键—NewOtherWeb ServicesWeb Service Clientnextnext,在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);
        }

     

    运行结果如下:

     

     



  • 相关阅读:
    property可以声明得位置
    实例变量可以声明得位置
    void *与id类型的相互转换
    对象指针
    __weak修饰符
    __strong修饰符
    Objective-C中的自动释放池
    习题6-8 统计一行文本的单词个数 (15分)
    练习4-3 求给定精度的简单交错序列部分和 (15分)
    习题3-5 三角形判断 (15分)
  • 原文地址:https://www.cnblogs.com/wang3680/p/f0a2dc85a21fbb41a0984cc52303a81e.html
Copyright © 2020-2023  润新知