圖1:導入現有的代碼
安裝聊天服務器到Eclipse中
假定你讓帶有WASP Developer的Eclipse啟動並運行,安裝示例代碼。
在Eclipse中創建一個新建項目(File - > New - > Project...)。選擇Systinet Web Services/Web Service Project。
在下麵的對話框中輸入項目名,ChatServiceProject和位置。結束向導。
從File菜單中,選擇Import...命令,並且選擇Zip file方法。
在對話框中選擇前麵源代碼中下載的壓縮文件,並且點擊Finish按鈕。
你的工程現在應該包含兩個帶有Chat Service的源代碼的程序包。你可以通過檢查Package Explore視圖來檢查。
SOAP啟動聊天服務器
現在你有了一個簡單的聊天服務器的一個工作實現。為了能與SOAP通信,你要把它部署到使用運行時間發布方法的Web服務服務器。
啟動絕對地址的服務器並且在服務器的地址下注冊這個服務。服務器地址+服務路徑組成了Web服務的完整的URI。
這裏是啟動SOAP服務器並且把聊天服務注冊為一個Web服務的應用程序代碼類。這個源代碼文件應該(很明顯)應該被存為ChatServerApp.java。
package com.systinet.simplechat.server.impl;
import org.systinet.wasp.*;
import org.systinet.wasp.webservice.Registry;
public class ChatServerApp {
public static void main(String[] args) throws Exception {
Wasp.startServer("http://localhost:6060");
Registry.publish("/ChatService/", ChatService.class);
System.out.println("The Chat server is up and running.");
}
}
它很簡單,隻有兩行代碼:
Wasp.startServer("http://localhost:6060");
Registry.publish("/ChatService/", ChatService.class);
WASP.startServer方法啟動一個Java應用程序內的服務器。Registry.publish方法編程地部署ChatService類為一個Web服務。這個服務的URI由服務器的地址和服務器的服務路徑組成。WASP還自動地創建描述服務WSDL文檔並且把它發布在SERVICE_URI/wsdl。
圖2:運行服務器。
構造並運行聊天服務器
聊天服務器現在可以運行了。在構造完畢之後(Project->Build Add),你可以啟動它。首先,創建一個Web服務運行器。這個運行器保證服務器有所有需要的庫並且被適當的配置。為了創建運行器,從com.systinet.simplechat.server.impl程序包中選擇ChatServerApp並且從IDE菜單中選擇Run->Run...。
打開的對話框是工程中的所有的運行器的管理器。雙擊WASP Java Application運行模板。創建了一個稱為ChatServerApp的新的運行器。總是使用這個運行器來運行ChatServerApp類。按下Run按鈕來啟動聊天服務器。
服務器啟動並且運行,準備與SOAP通信。它的位置是http://localhost:6060/ChatService/。動態生成WSDL文檔的位置是http://localhost:6060/ChatService/wsdl。
業務邏輯現在使用Runtime API被編程部署到服務器上。
圖3:運行服務器的輸出。
客戶端
現在,你需要一個消費這個ChatService的客戶端。
假定你對這個服務所了解的所有的東西隻是它的WSDL描述的位置: http://localhost:6060/ChatService/wsdl。你不能訪問原始的Web服務的源代碼。你甚至不知道它是使用什麼語言來實現的。你還不知道ChatService的精確位置,但是你知道每個Web服務都在它的WSDL文檔中完全描述。
服務器創建一個代理,隱藏所有的SOAP並且從開發者垂直傳送,並且讓它們使用單一方法調用來調用Web服務。為了運行,這個代理必須知道Web服務的WSDL描述的位置,Web服務的URI和它的Java接口。你知道ChatService的WSDL位置,並且服務的URI包含在這個WSDL中。現在你所需要的是取得服務的Java接口。手工創建它意味著非常了解WSDL和XML Schema,並且它甚至仍然是一個很難的任務。幸運的是,WASP Developer包含一個從它的WSDL生成一個Web服務的Java接口的工具。這個工具,稱為WSDL2Java,可用作命令行實用程序和一個ANT任務,所以它非常便於與使用ANT的構造整合。