Google,baidu,等等...不鳥他們!!! 我要用自己開發(fā)的分布式文件系統(tǒng)、分布式調(diào)度系統(tǒng)、分布式檢索系統(tǒng),做自己的搜索引擎!!!大魚有大志!!! ---楊書童
1、環(huán)境搭建
操作系統(tǒng):Vista Home
gSOAP:2.7.17Stable版(下載地址:http://sourceforge.net/projects/gsoap2/)
c\c++集成環(huán)境:VC6.0
2、gSOAP
下載得到gsoap_2.7.17.zip文件,解壓該文件。稍后需要從該文件夾中獲取相關(guān)文件。設(shè)釋放路徑為"G:\webservice\gsoap-2.7",后文%GSOAP代表該文件夾路徑。
3、通過WSDL文檔,生成C/C++頭文件
3.1 WSDL是什么:WSDL (Web Services Description Language,Web服務(wù)描述語言)是一種XML Application,他將Web服務(wù)描述定義為一組服務(wù)訪問點,客戶端可以通過這些服務(wù)訪問點對包含面向文檔信息或面向過程調(diào)用的服務(wù)進行訪問(類似遠程過程調(diào)用)。WSDL首先對訪問的操作和訪問時使用的請求/響應(yīng)消息進行抽象描述,然后將其綁定到具體的傳輸協(xié)議和消息格式上以最終定義具體部署的服務(wù)訪問點。相關(guān)的具體部署的服務(wù)訪問點通過組合就成為抽象的Web服務(wù)。
3.2 通過WSDL生成訪問接口:(http://192.168.100.44:8888/kms_provincial/services/LoginInit?wsdl為一WebService接口)
設(shè)定c\c++工程名稱為TestWebService(Console程序,其他應(yīng)用程序類型也可),在該文件夾下面建立TestWebService.h文件。
啟動cmd,進入到%GSOAP/bin目錄,調(diào)用wsdl2h.exe程序生成TestWebService.h頭文件接口定義。
wsdl2h -s –o x:\xxx\TestWebService.h [url]http://192.168.100.44:8888/kms_provincial/services/LoginInit?wsdl[/url]
執(zhí)行完畢后,生成soapLoginInitSoapBindingProxy.h、soapLoginInitSoapBindingProxy.cpp文件。
3.3 解析TestWebService.h文件,生成存根程序
soapcpp2 –C x:\xxx\TestWebService.h
命令中參數(shù)-c代表生成標準C程序,若沒有這個參數(shù),則生成C++程序。
命令中參數(shù)-C代表僅生成客戶端程序,若沒有這個參數(shù),則默認生成客戶端和服務(wù)端程序。4
4 建立vc工程
建立以TestWebService為名稱的console工程,將%GSOAP下的soapC.cpp、soapH.h、soapcpp2.h、stdsoap2.cpp、stdsoap2.h、soapStub.h、soapLoginInitSoapBindingProxy.cpp、soapLoginInitSoapBindingProxy.h加入到工程中。
5、注意問題
5.1 在工程頭文件中加入#include "LoginInitSoapBinding.nsmap" // this is what you have to add to fix the problem,否則會有編譯問題,請自己嘗試;
5.2 中文漢字問題,注意編碼問題,統(tǒng)一即可。
Copyright Copyright 楊書童