zoukankan      html  css  js  c++  java
  • Webservice客户端动态调用服务端功能方法

    一、发布WebService服务
    方式一:在服务端生成wsdl文件,下方客户端直接引用即可
     
      优点:针对要发布的方法生成一个wsdl文件即可,无需多余配置。
      缺点:每次服务端方法发生改变都需要重新生成相应的wsdl文件,不适合于功能需要经常变动的方法。
     
    方式二:在服务端生成WebService的服务端代码,如需变动方法或功能直接进行相关的更改即可。
      
      优点:变更功能、方法等客户端可以动态的调用,服务端一旦变更客户端即可通过动态进行变更引用。
     
     
    二、Client调用服务端接口 
     
    1、 项目架构如下:
     
    2、调用过程:
    1)右键点击项目名称——>“NEW”——>“Other”——>输入WEB service client 如下
     
     
    2)完成出现客户端配置窗口,如下
     
     
    3)在“service definition”中输入webservice开放的服务地址, 注意地址末尾必须加上“?WSDL”
     
    还需注意的是,创建的web service client 必须是3.0以下版本。
     
    4)这个项目中除了 TestClient.java类是自己创建的,其他都是自动生成的。
     
    5)TestClient.java类

    public static void main(String[] args) {
    try {
    CalculateServiceServiceLocator service = new CalculateServiceServiceLocator();
    java.net.URL url = new java.net.URL("http://localhost:8080/WebServiceTest/services/CalculateService?wsdl");
    /* java.net.URL url = new java.net.URL("http://localhost:8080/WebServiceTest/services/CalculateService");*/
    CalculateServiceSoapBindingStub cssbs = new CalculateServiceSoapBindingStub(url, service);
    float f =cssbs.divide(5, 3);
    System.out.println("相除:"+f);

    f =cssbs.plus(3, 6);
    System.out.println("相加:"+f);
    } catch (RemoteException e) {
    // TODO Auto-generated catch block20
    e.printStackTrace();
    } catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }




    /* 静态引用Webservice
    * CalculateServiceProxy csp = new CalculateServiceProxy();
    CalculateService cs = csp.getCalculateService();
    try {
    float f=csp.multiply(3, 3);
    System.out.println("乘积:"+f);
    f=cs.divide(5, 2);
    System.out.println("相除:"+f);
    } catch (RemoteException e) {
    e.printStackTrace();
    }*/
    }
    }

    这里主要用到的是***Locator 和***Stub这两个类。

     

  • 相关阅读:
    vue-hbuilder打包-调取摄像头或上传图片
    vue使用websoket(非封装)
    vue项目hbuilder打包-微信登录调取手机微信登录权限
    登录信息localStorage存储
    vue的三种组件传值方式
    vue-axios设置公共的请求ip
    hive基本配置
    The server time zone value 'EDT' is unrecognized or represents more than one time zone.
    hive启动时 java.net.ConnectException:拒绝连接
    FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
  • 原文地址:https://www.cnblogs.com/cnblog-long/p/7151418.html
Copyright © 2011-2022 走看看