李茂斌++岳海燕
摘要:WebService是不同系統(tǒng)之間信息交互的常用集成方式,在當(dāng)前信息系統(tǒng)廣泛應(yīng)用的前景下,不同信息系統(tǒng)由不同開發(fā)企業(yè)來開發(fā),導(dǎo)致系統(tǒng)之間的交互集成的市場(chǎng)前景一片看好,在這樣的背景下WebService的簡(jiǎn)便易用優(yōu)勢(shì)凸顯出來,得到了廣大用戶的青睞。本文針對(duì)java環(huán)境下調(diào)用webService方式進(jìn)行了分析和歸納總結(jié),詳細(xì)分析了該方法的優(yōu)勢(shì)、每個(gè)步驟的含義和實(shí)際操作方式。
關(guān)鍵詞:java;WebService;接口
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0203-02
Abstract:WebService is common integration mode of information interaction between different systems, this paper analysis and summary call the webservice mode in the java environment. In addition, this paper detailed analysis the advantages of the method ,the meaning of each step and the actual operation mode.
Key Words:java;webService;port
1 概述
Web Service是一種可以接收從internet或者internet上的其它系統(tǒng)中傳遞過來的請(qǐng)求,輕量級(jí)的獨(dú)立的通訊技術(shù),是通過soap在web上提供的軟件服務(wù),使用WSDL文件進(jìn)行說明,并通過UDDI進(jìn)行注冊(cè)。
Web Service主要目的是跨平臺(tái)的可交互操作,為了實(shí)現(xiàn)這一目標(biāo),Web Service完全基于XML獨(dú)立平臺(tái)、獨(dú)立軟件供應(yīng)商的標(biāo)準(zhǔn),是創(chuàng)建的可互操作的、分布式應(yīng)用程序的新平臺(tái)。
2 優(yōu)勢(shì)分析
當(dāng)前很多大系統(tǒng)的應(yīng)用,帶來不同系統(tǒng)之間交互的需求,傳統(tǒng)交互方式工作量大,給系統(tǒng)帶來了很大負(fù)擔(dān),而Web Service恰恰彌補(bǔ)了系統(tǒng)集成中傳統(tǒng)方法的很多缺陷,因此受到廣泛的應(yīng)用。Web Service主要優(yōu)點(diǎn)如下:
2.1 跨防火墻通信
系統(tǒng)用戶成千上萬,分布于不同地域,客戶端和服務(wù)器端之間通常會(huì)有防火墻或者代理服務(wù)器,客戶端和服務(wù)器端之間通信將是一個(gè)棘手的問題。傳統(tǒng)的做法是瀏覽器作為客戶端,寫大量的JSP頁面,把應(yīng)用程序的中間層暴露給最終用戶,這樣的開發(fā)難度大,程序不好維護(hù)。我們追求的目標(biāo)就是客戶端代碼不再依賴于HTML表單,客戶端的編程就簡(jiǎn)單了。把中間層換成Web Service,就可以從用戶直接調(diào)用中間層組件,省掉直接建立JSP頁面那一步,這樣就縮短了開發(fā)周期,減少了代碼復(fù)雜度,并且增加了應(yīng)用程序的可維護(hù)性。
2.2 應(yīng)用程序的集成
大系統(tǒng)的開發(fā)者都知道,企業(yè)經(jīng)常會(huì)把不同公司開發(fā),用不同語言編輯,在不同平臺(tái)上運(yùn)行的各種系統(tǒng)集成到一起,這種集成會(huì)花費(fèi)很大的開發(fā)力量,應(yīng)用程序經(jīng)常需要從一個(gè)應(yīng)用程序中獲取數(shù)據(jù),或者把數(shù)據(jù)發(fā)送到其他平臺(tái)應(yīng)用程序中去,即使同一平臺(tái),不同軟件廠商生產(chǎn)的各種軟件也常常需要集成起來,應(yīng)用Web Service,應(yīng)用程序可以用標(biāo)準(zhǔn)的方法把數(shù)據(jù)“暴露”出來,供其他應(yīng)用程序使用。
2.3 B2B集成
B2B指的是Business to Business,as in businesses doing business with other business,即企業(yè)和企業(yè)之間通過網(wǎng)絡(luò)進(jìn)行產(chǎn)品、服務(wù)及信息的交互。
Web Service是B2B集成成功的關(guān)鍵,通過Web Service,一個(gè)公司可以只把特定的數(shù)據(jù)提供給客戶就可以了,Web Service運(yùn)行在internet上,在世界的任何地方都可以輕易實(shí)現(xiàn),運(yùn)行成本較低。用Web Service來實(shí)現(xiàn)B2B集成的最大就是可以很容易的實(shí)現(xiàn)互操作性,不管他們?cè)谑裁雌脚_(tái)上運(yùn)行,使用什么開發(fā)語言,大大減少了花在B2B上集成的時(shí)間和成本。
2.4 軟件和數(shù)據(jù)的重用
Web Service在重用代碼的同時(shí),能夠重用代碼背后的數(shù)據(jù)。使用Web Service只需要直接調(diào)用遠(yuǎn)端的Web Service就可以了,可以很容易的把所有這些功能都集成到你的門戶站點(diǎn)中,為用戶提供一個(gè)統(tǒng)一的友好的界面??梢栽趹?yīng)用程序中使用第三方的Web Service提供的功能,也可以把自己的應(yīng)用程序通過Web Service提供給別人,這幾種情況下都可以重用代碼和代碼背后的數(shù)據(jù)。
3 實(shí)現(xiàn)步驟
3.1 首先創(chuàng)建一個(gè)服務(wù),服務(wù)器端提供一個(gè)方法如下
Public calss SayHello{
Public String getName(String name){
Return “hell0====”+name;
}
}
3.2 客戶端訪問方法
指出service所在的URL
String url =“http://120.120.120.1:8080/webservice/service/ligin.jws”;
創(chuàng)建一個(gè)服務(wù)調(diào)用
Service service = new Service();
Call call = (Call) service.createCall();
設(shè)置service所在的URL
call.setTargetEndpointAddress(url);
方法名和myservice.java方法名保持一致
call.setOperationName(getName);/
object數(shù)組封裝了參數(shù),參數(shù)為“this is test”,調(diào)用方法
String outStr = (String) call.invoke(new Object[]{this is test });
System.out.println(outStr)。
4 工程實(shí)現(xiàn)
WebService在java環(huán)境下,客戶端連接服務(wù)器的方法如下:
String serIp; // WebService服務(wù)器IP+端口號(hào)
String serName; // 服務(wù)名稱
String infName; // 接口名稱
String StrName; // 參數(shù)名稱
//調(diào)用webServers
String url = "http://"+serIp+"/webservice//services/"+serName;
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(infName);//WSDL里面描述的接口名稱
call.addParameter(StrName,XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI(url);
call.setReturnType(XMLType.SOAP_STRING);//設(shè)置返回類型
String temp=inStr; //傳遞的參數(shù)
/ 給方法傳遞參數(shù),并且調(diào)用方法,outStr為返回值
outStr = (String) call.invoke(new Object[]{temp});
按照此方法,把參數(shù)傳遞給服務(wù)器,并且把處理后的結(jié)果傳遞回來,達(dá)到了不同信息系統(tǒng)之間參數(shù)交互的效果。
這種調(diào)用方法開發(fā)簡(jiǎn)單,調(diào)用簡(jiǎn)單,只要service提供方不改動(dòng)對(duì)外的方法接口,客戶端就不需要有代碼改動(dòng),無需對(duì)Web Service有太深的了解,只要按照套路去調(diào)用就可以了。
參考文獻(xiàn)
[1]林弘之.Web service原理與開發(fā)務(wù)實(shí)[M].北京:電子工業(yè)出版社,2003.11.
[2]青島東合信息技術(shù)有限公司,等.Web service應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2015.02.