天天看點

開發webservice應用程式

随着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程式完成,并能順利運作。