李茂斌++岳海燕
摘要:WebService是不同系統之間信息交互的常用集成方式,在當前信息系統廣泛應用的前景下,不同信息系統由不同開發企業來開發,導致系統之間的交互集成的市場前景一片看好,在這樣的背景下WebService的簡便易用優勢凸顯出來,得到了廣大用戶的青睞。本文針對java環境下調用webService方式進行了分析和歸納總結,詳細分析了該方法的優勢、每個步驟的含義和實際操作方式。
關鍵詞:java;WebService;接口
中圖分類號:TP311 文獻標識碼:A 文章編號: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上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術,是通過soap在web上提供的軟件服務,使用WSDL文件進行說明,并通過UDDI進行注冊。
Web Service主要目的是跨平臺的可交互操作,為了實現這一目標,Web Service完全基于XML獨立平臺、獨立軟件供應商的標準,是創建的可互操作的、分布式應用程序的新平臺。
2 優勢分析
當前很多大系統的應用,帶來不同系統之間交互的需求,傳統交互方式工作量大,給系統帶來了很大負擔,而Web Service恰恰彌補了系統集成中傳統方法的很多缺陷,因此受到廣泛的應用。Web Service主要優點如下:
2.1 跨防火墻通信
系統用戶成千上萬,分布于不同地域,客戶端和服務器端之間通常會有防火墻或者代理服務器,客戶端和服務器端之間通信將是一個棘手的問題。傳統的做法是瀏覽器作為客戶端,寫大量的JSP頁面,把應用程序的中間層暴露給最終用戶,這樣的開發難度大,程序不好維護。我們追求的目標就是客戶端代碼不再依賴于HTML表單,客戶端的編程就簡單了。把中間層換成Web Service,就可以從用戶直接調用中間層組件,省掉直接建立JSP頁面那一步,這樣就縮短了開發周期,減少了代碼復雜度,并且增加了應用程序的可維護性。
2.2 應用程序的集成
大系統的開發者都知道,企業經常會把不同公司開發,用不同語言編輯,在不同平臺上運行的各種系統集成到一起,這種集成會花費很大的開發力量,應用程序經常需要從一個應用程序中獲取數據,或者把數據發送到其他平臺應用程序中去,即使同一平臺,不同軟件廠商生產的各種軟件也常常需要集成起來,應用Web Service,應用程序可以用標準的方法把數據“暴露”出來,供其他應用程序使用。
2.3 B2B集成
B2B指的是Business to Business,as in businesses doing business with other business,即企業和企業之間通過網絡進行產品、服務及信息的交互。
Web Service是B2B集成成功的關鍵,通過Web Service,一個公司可以只把特定的數據提供給客戶就可以了,Web Service運行在internet上,在世界的任何地方都可以輕易實現,運行成本較低。用Web Service來實現B2B集成的最大就是可以很容易的實現互操作性,不管他們在什么平臺上運行,使用什么開發語言,大大減少了花在B2B上集成的時間和成本。
2.4 軟件和數據的重用
Web Service在重用代碼的同時,能夠重用代碼背后的數據。使用Web Service只需要直接調用遠端的Web Service就可以了,可以很容易的把所有這些功能都集成到你的門戶站點中,為用戶提供一個統一的友好的界面。可以在應用程序中使用第三方的Web Service提供的功能,也可以把自己的應用程序通過Web Service提供給別人,這幾種情況下都可以重用代碼和代碼背后的數據。
3 實現步驟
3.1 首先創建一個服務,服務器端提供一個方法如下
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”;
創建一個服務調用
Service service = new Service();
Call call = (Call) service.createCall();
設置service所在的URL
call.setTargetEndpointAddress(url);
方法名和myservice.java方法名保持一致
call.setOperationName(getName);/
object數組封裝了參數,參數為“this is test”,調用方法
String outStr = (String) call.invoke(new Object[]{this is test });
System.out.println(outStr)。
4 工程實現
WebService在java環境下,客戶端連接服務器的方法如下:
String serIp; // WebService服務器IP+端口號
String serName; // 服務名稱
String infName; // 接口名稱
String StrName; // 參數名稱
//調用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);//設置返回類型
String temp=inStr; //傳遞的參數
/ 給方法傳遞參數,并且調用方法,outStr為返回值
outStr = (String) call.invoke(new Object[]{temp});
按照此方法,把參數傳遞給服務器,并且把處理后的結果傳遞回來,達到了不同信息系統之間參數交互的效果。
這種調用方法開發簡單,調用簡單,只要service提供方不改動對外的方法接口,客戶端就不需要有代碼改動,無需對Web Service有太深的了解,只要按照套路去調用就可以了。
參考文獻
[1]林弘之.Web service原理與開發務實[M].北京:電子工業出版社,2003.11.
[2]青島東合信息技術有限公司,等.Web service應用開發[M].北京:電子工業出版社,2015.02.