1. 程式人生 > >在javascript中訪問web service方法及程式碼生成工具wsdl2js

在javascript中訪問web service方法及程式碼生成工具wsdl2js

根據web service的定義,和web service進行請求響應要用SOAP(http://www.w3c.org/TR/soap) 對請求響應的資料進行封裝,客戶端對請求資料用SOAP封裝,然後用HTTP協議傳送到web service的接收地址,web service實現解析SOAP,呼叫客戶端請求的方法,成功後將返回值用SOAP封裝返用HTTP回給發出請求的客戶端,客戶端解析返回的SOAP包,得到所呼叫web service方法的返回值。

客戶端在封裝傳送給web service的請求資料和解析web service返回的資料時需要知道呼叫的方法名,引數個數,引數型別,返回值型別,以及其他封裝SOAP所需的資訊,這些資訊客戶端可以從web service的WSDL(

http://www.w3c.org/TR/wsdl)獲得。

在javascript中,傳送和接收SOAP包可以用XMLHTTPRequest物件來實現,關於XMLHTTPRequest可參考http://blog.csdn.net/indexchen/archive/2005/12/04/543209.aspx 。生成和解析SOAP包則可根據WSDL來編寫,但這個過程比較煩瑣,手工編寫效率很低,因此本人開發了一個工具wsdl2js,這個工具可以根據web service的WSDL來生成呼叫web service中方法的javascript程式碼。wsdl2js生成的訪問web service的javascript程式碼不需要其他附加庫就可嵌入HTML頁面中執行。

wsdl2js目前支援WSDL 1.1和SOAP 1.1,支援字串、整數、浮點型、陣列、w3c DOM物件。wsdl2js採用java開發,因此能執行java的平臺都能使用。