zoukankan      html  css  js  c++  java
  • 浅谈WebService的调用<转>

    0.前言

        前段时间,公司和电信有个合作,产品对接电信的某个平台,使用了WebService接口的调用,实现了业务受理以及单点登录。终于使用到了WebService,楼主还是比较兴奋的,目前功能已经上线,下面进行使用总结。WebService涉及到内容还是比较多的,涉及到发布和调用,有不少知识点,本文只是最简单的调用。

    1.WebService简介

        WebService是基于soap协议(简单对象访问协议全写为Simple Object Access Protocol)的,所有的webService请求、应答都是建立在soap协议的基础上的,而soap传输数据的载体是xml。WSDL(Web Services Description Language)是WebService的描述语言,它定义了Web Service做什么,怎么做和查询的信息。在验证一个WebService是否好用的时候,我们通常会选则在浏览器中输入对应的WSDL地址(比如天气预报)。如果显示出一个xml文件,这是好用的,反之就是不可用的。

        可以这样理解,通过WebService,我们可以把我们的程序发布成wsdl接口。在其它平台,通过WSDL生成当前平台可调用的代理类,通过调用生成的接口和方法,实现应用之间的相互调用。   

       参考:WebService使用的一些总结

    2.WebService的调用

        调用webservice服务的三种途径,Endpoint ,Disco ,WSDL。客户端在调用电信WebService上行发短信时,是通过 wsdl生成本地代理类方式实行的。而在接收状态报告下行时,可以采用的是 Endpoint方式(客户端不需要生成本地代理类,只需要知道Endpoint地址),比如查看某个城市的天气。

        传送门:一些常用的WebService

        通过wsdl生成代理类:可以使用axis2 的wsdl2java  通过命令行生成代理类 (具体可自行百度)    

    1
    wsdl2java -p com.generTech.rms.equipment(包名) -d src(目标文件夹位置) -all(生成全部,-client生成客户端,-server生成服务端) -frontend jaxws21  http://192.168.3.80:8080/emp/EmpProvideServiceImp?wsdl(wsdl文件地址)

       或者通过IDE的插件直接生成,比如Intellij IDEA,可以创建WebService项目,自动下载需要的jar包,输入wsdl的url,

    就直接生成了代理类。

        具体方法:New Project——Java——WebService Client

        

        自动下载的7个jars 需要下载成功后 才可以根据wsdl生成java code 以及代理类的调用

        

        Tools——WebServices——Generate Wsdl From Java Code

        

    建议选中 生成TestCase,可以方便接口测试(调用时需要添加junit的jar)

    如果是maven项目,可以使用下面的pom

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <!--webservice 调用需要的jar -->
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.0.4</version>
            </dependency>
     
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
            </dependency>
     
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.8</version>
            </dependency>
             
            <dependency>
                <groupId>org.apache.axis</groupId>
                <artifactId>axis</artifactId>
                <version>1.4</version>
            </dependency>
     
            <dependency>
                <groupId>org.apache.axis</groupId>
                <artifactId>axis-jaxrpc</artifactId>
                <version>1.4</version>
            </dependency>
     
            <dependency>
                <groupId>commons-discovery</groupId>
                <artifactId>commons-discovery</artifactId>
                <version>0.2</version>
            </dependency>
     
            <dependency>
                <groupId>org.apache.axis</groupId>
                <artifactId>axis-saaj</artifactId>
                <version>1.4</version>
            </dependency>
     
            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>1.4</version>
            </dependency>
            <!--webservice 调用需要的jar -->
        </dependencies>

        测试效果:

       

    3.GIT@OSC地址

    WebService Maven Project:http://git.oschina.net/lujianing/WebService_Demo

    Pom.xml地址:http://git.oschina.net/lujianing/WebService_Demo/blob/master/pom.xml

    EndPoint调用(不生成代理类):点这里

    转自http://my.oschina.net/lujianing/blog/224380

  • 相关阅读:
    洛谷 P1464 Function【动态规划(递推)/记忆化搜索(递归)】
    洛谷 P1426 小鱼会有危险吗【模拟/题意理解】
    洛谷 P2089 烤鸡【DFS递归/10重枚举】
    洛谷 P1579 哥德巴赫猜想(升级版)【筛素数/技巧性枚举/易错】
    洛谷 P1618 三连击(升级版)【DFS/next_permutation()/技巧性枚举/sprintf】
    sprintf 心得
    洛谷 P1478 陶陶摘苹果(升级版)【贪心/结构体排序/可用01背包待补】
    吉首大学 问题 L: 小李子的老年生活
    AtCoder Beginner Contest 084 D
    一维差值维护心得
  • 原文地址:https://www.cnblogs.com/winkey4986/p/5011056.html
Copyright © 2011-2022 走看看