很久沒有動手寫WebService了,這次,借項目間隙,對系統(tǒng)進行一個小改造,將一部分功能使用WS進行封裝,為下一步異構系統(tǒng)集成打下基礎。
但在WS化時,由于日久生疏,一個小小的WS化變動,卻花了整整好幾天時間!為此,狠下以來,將其過程進行記錄,以便下次參考。
WS整體流程:
以下分別介紹:
1、設計和實現(xiàn)WebService服務端功能組件,用于統(tǒng)一處理針對本應用系統(tǒng)所需進行WebService化的邏輯實現(xiàn)。并將系統(tǒng)邏輯處理中的對象轉成序列化后的String對象,以符合WebService交互標準。
2、根據(jù)SBPApi.java,生成WSDL等:通過Eclipse右鍵菜單中的WebService-->Create Web Service項。完成后,會在web目錄下建立wsdl目錄和SBPApi.wsdl,在WEB-INF目錄下建立(改寫)server-config.wsdd等文件,并完成對web.xml的修改。其操作流程示如下:
3、根據(jù)SBPApi.wsdl,生成WebService客戶端開發(fā)包和部署文件:
1)為不影響已有項目,可另建java Web項目;
2)將wsdl目錄復制至新項目對應的web目錄下;
3)通過eclipse已提供的webService插件(右鍵)功能,生成客戶端開發(fā)包所各文件。此時,所生成的文件與服務端對象文件結構一至。
4)調(diào)整關聯(lián)引用文件,將其調(diào)整至客戶端開發(fā)包,從而避免與服務器端的引用路徑重復而引發(fā)不便,并將服務器SDK中已有文件刪除。
5)建立客戶端的快速使用代理SBPClient.java,對WebService服務端交互工作的SBPApiSoapBindingStub.java進行客戶端封裝,并根據(jù)服務端中交互對象進行反向工程,其示例結構如下:
6)將clientApi下的所有文件打包后,加入測試項目進行測試。此時,因客戶端所使用的服務端對象未包含在WebService客戶端開發(fā)包中,因此需要將服務端對象也一同打包。
7)測試。
4、開發(fā)環(huán)境:Eclipse3.3.1.1 + JDK1.5.06 + Apache Axis version: 1.4