前段時間,公司和電信有個合做,產品對接電信的某個平臺,使用了WebService接口的調用,實現了業務受理以及單點登陸。終於使用到了WebService,樓主仍是比較興奮的,目前功能已經上線,下面進行使用總結。WebService涉及到內容仍是比較多的,涉及到發佈和調用,有很多知識點,本文只是最簡單的調用。
html
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
調用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>
測試效果:
WebService Maven Project:http://git.oschina.net/lujianing/WebService_Demo
Pom.xml地址:http://git.oschina.net/lujianing/WebService_Demo/blob/master/pom.xml
EndPoint調用(不生成代理類):點這裏