淺談WebService的調用

0.前言

    前段時間,公司和電信有個合做,產品對接電信的某個平臺,使用了WebService接口的調用,實現了業務受理以及單點登陸。終於使用到了WebService樓主仍是比較興奮的,目前功能已經上線,下面進行使用總結。WebService涉及到內容仍是比較多的,涉及到發佈和調用,有很多知識點,本文只是最簡單的調用。
html

1.WebService簡介

    WebService是基於soap協議(簡單對象訪問協議全寫爲Simple Object Access Protocol)的,全部的webService請求、應答都是創建在soap協議的基礎上的,而soap傳輸數據的載體是xml。WSDL(Web Services Description Language)是WebService的描述語言,它定義了Web Service作什麼,怎麼作和查詢的信息。在驗證一個WebService是否好用的時候,咱們一般會選則在瀏覽器中輸入對應的WSDL地址(好比天氣預報)。若是顯示出一個xml文件,這是好用的,反之就是不可用的。java

    能夠這樣理解,經過WebService,咱們能夠把咱們的程序發佈成wsdl接口。在其它平臺,經過WSDL生成當前平臺可調用的代理類,經過調用生成的接口和方法,實現應用之間的相互調用。   git

   參考:WebService使用的一些總結
web

2.WebService的調用

    調用webservice服務的三種途徑,Endpoint ,Disco ,WSDL。客戶端在調用電信WebService上行發短信時,是經過 wsdl生成本地代理類方式實行的。而在接收狀態報告下行時,能夠採用的是 Endpoint方式(客戶端不須要生成本地代理類,只須要知道Endpoint地址),好比查看某個城市的天氣。apache

    傳送門:一些經常使用的WebService
瀏覽器

    經過wsdl生成代理類:可使用axis2 的wsdl2java  經過命令行生成代理類 (具體可自行百度)    frontend

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,maven

就直接生成了代理類。ide

    具體方法:New Project——Java——WebService Client測試

    

    自動下載的7個jars 須要下載成功後 才能夠根據wsdl生成java code 以及代理類的調用

    

    Tools——WebServices——Generate Wsdl From Java Code

    

建議選中 生成TestCase,能夠方便接口測試(調用時須要添加junit的jar)

若是是maven項目,可使用下面的pom

<!--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調用(不生成代理類):點這裏

相關文章
相關標籤/搜索