随着Internet/Intranet的發展,開發模式發生了變化,第一波重要的技術是http/html,他給Internet/Intranet和電子商務都帶來重要的影響;第二波是java技術的興起,java帶來了跨品台的锲機,讓開發人員可以使用單一的語言和環境開發應用系統;第三波是xml技術的興起,它提供了标準的資料封裝,讓資料交換跨越了各種平台、作業系統和各種工具,通過xml,各種資料交換不再讓人頭痛。
Webservice 的概念是使用一個标準的輸出接口來定義代碼提供的功能,以便讓外界可以通過這個标準的輸出接口來調用,而所謂的标準輸出接口就是wsdl,wsdl是一個xml組成的檔案,描述了實作程式對外提供函數的原型,用戶端可以通過wsdl來調用實作程式提供的服務代碼。在這裡我不想詳細的介紹webservice的原理和概念,通過一個例子來展示新的基于網絡的開發模式。
在這個例子中服務端用java完成,用戶端用delphi完成,開發工具是JBuilder9和Delphi7,伺服器是tomcat5.0。
首先建立服務端程式:
啟動JBuilder建立一個工程,設定伺服器為tomcat4.0(因為JBuilder9不支援tomcat5.0,實作後将其在tomcat5.0中釋出)。
建立一個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再出現的視窗中選擇Export as a web service Wizard,在彈出的向導中選擇要導出的類名,其它項直接選預設值即可。
運作剛才建立的程式,出現“JBuilder Apache Axis Admin Console”的頁面表示剛才建立的webservice成功。點選View超級連結進入“And now... Some Services”頁面,點選HelloWorld(WSDL)的連結出現WSDL描述檔案,至此webservice服務端建立完成。
将剛才建立的webservice釋出到tomcat5.0中,在tomcat的webapps目錄下建立webservicetest目錄,将用JBulider建立的工程目錄下的 axis目錄下的檔案全部複制到其中,重新啟動tomcat,通路http://localhost:8080/webservicetest/,如果看到“JBuilder Apache Axis Admin Console”頁面說明釋出成功。
啟動Delphi7建立一個工程,然後選擇建立webservices中WSDL importer向導,将剛才釋出的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程式完成,并能順利運作。