隨著Internet/Intranet的發(fā)展,開發(fā)模式發(fā)生了變化,第一波重要的技術是http/html,他給Internet/Intranet和電子商務都帶來重要的影響;第二波是java技術的興起,java帶來了跨品臺的鍥機,讓開發(fā)人員可以使用單一的語言和環(huán)境開發(fā)應用系統(tǒng);第三波是xml技術的興起,它提供了標準的數(shù)據(jù)封裝,讓數(shù)據(jù)交換跨越了各種平臺、操作系統(tǒng)和各種工具,通過xml,各種數(shù)據(jù)交換不再讓人頭痛。 Webservice 的概念是使用一個標準的輸出接口來定義代碼提供的功能,以便讓外界可以通過這個標準的輸出接口來調(diào)用,而所謂的標準輸出接口就是wsdl,wsdl是一個xml組成的文件,描述了實現(xiàn)程序對外提供函數(shù)的原型,客戶端可以通過wsdl來調(diào)用實現(xiàn)程序提供的服務代碼。在這里我不想詳細的介紹webservice的原理和概念,通過一個例子來展示新的基于網(wǎng)絡的開發(fā)模式。 在這個例子中服務端用java完成,客戶端用delphi完成,開發(fā)工具是JBuilder9和Delphi7,服務器是tomcat5.0。 首先建立服務端程序: 啟動JBuilder建立一個工程,設置服務器為tomcat4.0(因為JBuilder9不支持tomcat5.0,實現(xiàn)后將其在tomcat5.0中發(fā)布)。 新建一個class 代碼如下: public class HelloWorld{ public String sayHello(){ return "Hello world!"; }
public String echo(String u){ return "Hello " + u; } } 選擇File菜單New,在彈出的對話框中選擇web services頁中的Web Serivice Configuation Wizard,新建webapp axis并配置servers。 再次選擇File菜單,New再出現(xiàn)的窗口中選擇Export as a web service Wizard,在彈出的向導中選擇要導出的類名,其它項直接選默認值即可。 運行剛才建立的程序,出現(xiàn)“JBuilder Apache Axis Admin Console”的頁面表示剛才建立的webservice成功。點擊View超級鏈接進入“And now... Some Services”頁面,點擊HelloWorld(WSDL)的鏈接出現(xiàn)WSDL描述文件,至此webservice服務端建立完成。 將剛才建立的webservice發(fā)布到tomcat5.0中,在tomcat的webapps目錄下新建webservicetest目錄,將用JBulider建立的工程目錄下的 axis目錄下的文件全部復制到其中,重新啟動tomcat,訪問http://localhost:8080/webservicetest/,如果看到“JBuilder Apache Axis Admin Console”頁面說明發(fā)布成功。 啟動Delphi7新建一個工程,然后選擇新建webservices中WSDL importer向導,將剛才發(fā)布的webservice描述文件WSDL導入(我的地址是:http://localhost:8080/webservicetest/services/HelloWorld?wsdl)自動生成一個單元HelloWorld1,在Unit1中使用單元HelloWorld1,在窗體上放置兩個button,在button1的Click事件中寫如下測試代碼: procedure TForm1.Button1Click(Sender: TObject); var test:HelloWorld; str:String; begin test := GetHelloWorld;(得到webservice提供的遠程接口) str := test.sayHello; ShowMessage(str); test := nil; end; 運行測試程序, 彈出“hello,world”說明成功。Button的測試代碼類似,我在這里不再重復。 至此,一個完成webservice程序完成,并能順利運行。 |
|
來自: Elena > 《webservice》