java調用webService接口的代碼實現
什么是webservice接口
Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統(tǒng)中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟件服務,使用WSDL文件進行說明,并通過UDDI進行注冊。
XML:(Extensible Markup Language)擴展型可標記語言。面向短期的臨時數據處理、面向萬維網絡,是Soap的基礎。
Soap:(Simple Object Access Protocol)簡單對象存取協(xié)議。是XML Web Service 的通信協(xié)議。當用戶通過UDDI找到你的WSDL描述文檔后,他通過可以SOAP調用你建立的Web服務中的一個或多個操作。SOAP是XML文檔形式的調用方法的規(guī)范,它可以支持不同的底層接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一個 XML 文檔,用于說明一組 SOAP 消息以及如何交換這些消息。大多數情況下由軟件自動生成和使用。
UDDI (Universal Description, Discovery, and Integration) 是一個主要針對Web服務供應商和使用者的新項目。在用戶能夠調用Web服務之前,必須確定這個服務內包含哪些商務方法,找到被調用的接口定義,還要在服務端來編制軟件,UDDI是一種根據描述文檔來引導系統(tǒng)查找相應服務的機制。UDDI利用SOAP消息機制(標準的XML/HTTP)來發(fā)布,編輯,瀏覽以及查找注冊信息。它采用XML格式來封裝各種不同類型的數據,并且發(fā)送到注冊中心或者由注冊中心來返回需要的數據。
webservice接口和http接口的區(qū)別
http接口走http協(xié)議,通過請求路徑來區(qū)分調用方法,請求報文一般是key-value形式的,返回報文一般是json串,常用的是get和post方法來請求。
webservice接口走的soap協(xié)議,通過http傳輸,請求報文和返回報文都是xml。Web Service的主要目標是跨平臺的可互操作性。為了實現這一目標,Web Service 完全基于XML(可擴展標記語言)、XSD(XML Schema)等獨立于平臺、獨立于軟件供應商的標準,是創(chuàng)建可互操作的、分布式應用程序的新平臺。
http與soap的區(qū)別:
(1) http:標準超文本傳輸協(xié)議;soap:簡單對象訪問協(xié)議。
(2) 都是底層的通信協(xié)議,請求包的格式不同,http純文本格式,soap包是XML格式。
(3) http只能傳輸純文本數據, soap可以傳遞結構化的數據。
(4) soap相對http(post/get)要進行xml解析,速度可能會有所降低。
如何用java代碼調用webservice接口
java代碼調用webservice接口的方式有很多,我這里介紹使用axis調用webservice接口
// 第一步先導入依賴包 // 創(chuàng)建服務對象 Service service = new Service(); // 生成客戶端,實例化調用變量 Call call = (Call) service.createCall(); // 設置超時時間 call.setTimeout(5000); // 設置服務地址,指明遠程調用的類, 設置url call.setTargetEndpointAddress(new URL(url)); // 設置遠程調用類中的方法,添加調用的函數的命名空間以及函數名稱 call.setOperationName(new QName("命名空間","方法名")); // 設置請求參數(根據服務端需要的參數設置例如需要一個參數名為Name的String類型)IN為輸入 out 為輸出 INOUT為輸入輸出 // call.addParameter("入參名", XMLType.XSD_STRING, ParameterMode.IN); call.addParameter("入參名", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); // 設置返回數據類型(接口出參類型,有時需要寫) // call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); // 調用webService獲得返回的數據 轉入一個Object[]數組,數組的元素就是轉入參數的值 outXml = (String) call.invoke(new Object[] {inXml}); // 打印接口返回值 System.out.println(outXml);
接口出參是一個字符串,如何處理出參,獲取到想要的數據,可以看下一篇文章:documentHelper解析xml獲取想要的數據
到此這篇關于java調用webService接口的代碼實現的文章就介紹到這了,更多相關java調用webService接口內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java爬蟲之使用HttpClient模擬瀏覽器發(fā)送請求方法詳解
這篇文章主要介紹了java爬蟲之使用HttpClient模擬瀏覽器發(fā)送請求方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07SpringBoot整合Redis將對象寫入redis的實現
本文主要介紹了SpringBoot整合Redis將對象寫入redis的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06Spring boot + mybatis + orcale實現步驟實例代碼講解
這篇文章主要介紹了Spring boot + mybatis + orcale的實現步驟實例代碼講解,需要的朋友可以參考下2017-12-12java.text.DecimalFormat類十進制格式化
這篇文章主要為大家詳細介紹了java.text.DecimalFormat類十進制格式化的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03