VS2010使用c++、gSOAP建立的WebService 圖文教程
作業系統:Windows 7
gsoap版本:2.8.32
C++編譯器/開發環境:Visual Studio 2010
gSOAP編譯工具提供了一個SOAP/XML 關于C/C++ 語言的實作,進而讓C/C++語言開發web服務或用戶端程式的工作變得輕松了很多。絕大多數的C++web服務工具包提供一組API函數類庫來處理特定的SOAP資料結構,這樣就使得使用者必須改變程式結構來适應相關的類庫。與之相反,gSOAP利用編譯器技術提供了一組透明化的SOAP API,并将與開發無關的SOAP實作細節相關的内容對使用者隐藏起來。
http://120.52.73.49/jaist.dl.sourceforge.net/project/gsoap2/gSOAP/gsoap_2.8.32.zip
<a target="_blank" href="https://sourceforge.net/projects/gsoap2/">gSOAP Toolkit</a>
解壓後把下面兩個檔案複制到“C:\Windows”目錄下,或者添加環境變量,這 樣就可以在任何位置執行指令:
soapcpp2.exe
wsdl2h.exe
檔案名:itoa.h
打開CMD指令行,切換目錄到“itoa.h”檔案所在目錄,執行指令:

執行完成後,會在檔案夾下面生成以下檔案:
經測試直接使用“soapcpp2 -S itoa.h”也是可以的;
1、打開VS2010,檔案》建立》項目
2、左側模闆中選擇Visual c++,右側選擇 Win32 控制台應用程式,輸入項目名稱,選擇儲存位置,勾選“為解決方案建立目錄”,确定
3、下一步
4、取消“預編譯頭”的選中狀态,完成
1、打開項目檔案目錄
2、将第二步生成的代碼複制到項目目錄下
3、添加檔案到項目
4、選擇要添加到項目的檔案
這裡沒有列全,有幾個檔案(stdsoap2.h,stdsoap2.cpp)是需要從gSOAP的源碼目錄複制過來的
注意:并不是要把所有檔案都添加到項目裡!
5、替換“itoaServer.cpp”檔案的内容,使用以下代碼:
6、編譯生成,在項目名稱上單擊滑鼠右鍵,選擇重新生成
選擇重新生成的好處是避免之前的生成錯誤影響本次生成的結果
7、生成成功後,從項目目錄下将“itoa.wsdl”檔案複制到輸出目錄
1、打開CMD指令提示符
2、切換目錄到生成輸入目錄
3、執行指令:itoaServer.exe 8087
後面的端口是可以自己定義的,你想用什麼就輸入什麼,隻要是未占用的,不是其它協定/服務常用的;
4、允許通路
5、打開浏覽器,輸入你的IP:端口号/itoa?wsdl 通路看看吧,正常的話應該顯示“itoa.wsdl”檔案的内容
1、更新檔案:itoa.h,添加了一個函數
2、更新檔案:itoaServer.cpp,加入代碼:
3、ns與ns2的差別
目前隻是發現如果頭檔案件中的函數名使用ns2開頭的話(例如:ns2_itoa),那麼生成的WSDL檔案名就是“ns2.wsdl”,時間有限,還沒有深入去研究;另外在官方使用者手冊中也會看到“//gsoap ns2 service”這樣的,也沒有嘗試;
别人如果想通路你的WebService,必須能夠拿到你的 wsdl 檔案(本例中為:itoa.wsdl)才行,還有就是你的WebService運作的伺服器IP及使用的端口。
這裡隻講了如何用c++,gSOAP開發一個WebService供别人調用,以後再講講如何調用的吧。
參考:
http://www.genivia.com/products.html
http://www.genivia.com/doc/soapdoc2.html
http://www.cppblog.com/qiujian5628/archive/2008/06/19/54019.html
http://www.cppblog.com/qiujian5628/archive/2008/09/16/61945.html