JAVA:一個(gè)程序?qū)W會(huì)用webService

本篇文章就通過寫一個(gè)獲取城市天氣情況的程序,學(xué)會(huì)調(diào)用webService。webService分客戶端和服務(wù)端的,本篇就寫客戶端的調(diào)用套路。服務(wù)篇的就下次再寫。嘻嘻~求關(guān)注。
本章內(nèi)容:

  • 介紹webService
  • 程序webService的開始編寫(只需要寫4句就可以實(shí)現(xiàn)。)
  • webService客戶端的總結(jié)

webService的介紹

  • Web service讓你的網(wǎng)站可以使用其他網(wǎng)站的資源。
  • webService 應(yīng)用還是比較多的,例如:公司需要兩個(gè)系統(tǒng)之間的數(shù)據(jù)需要有交互,那你不可能相互訪問對(duì)方的數(shù)據(jù)庫吧(這樣一聽就很笨)。所以可以用webService來進(jìn)行數(shù)據(jù)的調(diào)用了。
  • 調(diào)用webservice服務(wù)的三種途徑,Endpoint ,Disco ,WSDL。本次程序是用wsdl來調(diào)用。

webService:獲取城市天氣情況的程序

開始注意:

  • 編寫一個(gè)獲取城市天氣情況的程序來感受一下webService的魅力。
  • 編程工具時(shí)idea,因?yàn)閕dea自帶插件可以生成webService的代理類。
  • 整個(gè)程序過程:
過程

開始編程

  1. idea可以之間建立一個(gè)webService項(xiàng)目,如圖,但這次我是建立一個(gè)普通項(xiàng)目來顯示,因?yàn)橐话愣伍_發(fā)的程序,需要用webService的時(shí)候,就跟在普通項(xiàng)目調(diào)用webService一樣。


    深度截圖_選擇區(qū)域_20170816191553.png
  2. 建立好一個(gè)普通項(xiàng)目。
    建立好一個(gè)普通項(xiàng)目,需要導(dǎo)入webService所需要的jar包。如圖:

所需要的包.jpg

深度截圖_選擇區(qū)域_20170816191829.png
深度截圖_選擇區(qū)域_20170816192319.png
  1. 利用idea自帶的webService插件,生成代理類
    步驟:右鍵項(xiàng)目名稱的文件->最下面的選項(xiàng)WebServices


    image.png
深度截圖_選擇區(qū)域_20170816192458.png
  1. 選擇后,就會(huì)彈出一個(gè)框,如圖:
    天氣預(yù)告的webService地址
深度截圖_選擇區(qū)域_20170816192744.png

生成后就會(huì)有幾個(gè)類

深度截圖_選擇區(qū)域_20170816192822.png
  1. 分析生成的代理類:
    雖然生成了很多類,你不用慌,因?yàn)楹芏囝惗际沁壿嫶a,不需要我們?nèi)ダ斫猓{(diào)用。我們只需要掌握兩個(gè)接口就可以了
  • XXXService接口:實(shí)現(xiàn)該接口,綁定了服務(wù)的名稱,地址,端口等詳細(xì)資料。(其實(shí)就是建立對(duì)象,讓構(gòu)造方法綁定一些必須要的信息。)
  • XXXPortType接口:實(shí)現(xiàn)該接口,通過 SOAP 協(xié)議把操作請(qǐng)求發(fā)送到服務(wù)器,并把返回信息轉(zhuǎn)化為 Java 對(duì)象。(其實(shí)就是發(fā)送參數(shù)過去,獲取到數(shù)據(jù)的)

6.編寫代碼,調(diào)用接口。

  • 因?yàn)榻涌诓荒軐?shí)例化,所有肯定有實(shí)現(xiàn)類,所有在該代理類中,WebtherWebServiceLocator實(shí)現(xiàn)了XXXService接口。有趣的是,XXXservice接口的方法返回的類型時(shí)XXXPortType接口。所有你new一個(gè)對(duì)象處理,就已經(jīng)把兩個(gè)接口都用上了,接下來就直接傳參數(shù)獲取數(shù)據(jù)就可以了。
  • 不理解?看代碼
image.png
  1. 傳入?yún)?shù),獲取數(shù)據(jù)。
  • 剛剛分析了兩個(gè)接口的作用,第一個(gè)接口是綁定端口等,第二個(gè)接口是我們的重點(diǎn),里面的方法時(shí)用來調(diào)用傳參和調(diào)用數(shù)據(jù)的。
image.png
  • 部分方法注釋(代碼已經(jīng)放到我github)
image.png
  • 代碼
image.png
image.png

webService總結(jié)

  • wenService客戶端代理類已經(jīng)幫我們完成了99%的工作,我們只需要正確建立對(duì)象,用方法傳參,獲取數(shù)據(jù)就可以了。

PS:

  • 代碼量很少,很正常啊,從接口拿個(gè)數(shù)據(jù)需要寫幾百行代碼才不正常。
  • 本篇只是講解如何調(diào)用接口,webService還有服務(wù)端的,就是傳送數(shù)據(jù)的,下一篇將會(huì)講解如何使用。
  • 以后還會(huì)對(duì)webService深入了解,講解soap協(xié)議到底時(shí)什么。。。。
  • 總之,關(guān)注我就對(duì)了。
  • 謝謝觀看。謝謝評(píng)點(diǎn)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,673評(píng)論 18 399
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,008評(píng)論 25 709
  • 我一個(gè)人走過千萬里,從沒覺得孤獨(dú)。 開始覺得孤獨(dú),那是到長(zhǎng)安之后的事了。 每個(gè)人的心里都...
    創(chuàng)夢(mèng)教育555閱讀 455評(píng)論 0 1
  • 浣溪沙 洛城寂寞無人問,雪滿黃昏怨君才。 君若不才應(yīng)伴奴。 免相思。 千般思量隨君去,年年夜里秉燭游。 妾身不倚闌...
    田曰天閱讀 422評(píng)論 28 4

友情鏈接更多精彩內(nèi)容