亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用gsoap實現多客戶端,單服務端webservice

發布時間:2020-06-19 06:54:59 來源:網絡 閱讀:4169 作者:llf_17 欄目:編程語言

本工程代碼使用場景:2個webservice client ,1個webservice(本來有2個webservice,但富盛的不由我們管理開發)。
FS(富盛) webservice client, ZS(卓視) webservice client.  ZS(卓視) webservice.
本WebServiceClient 工程將FS(富盛) webservice client, ZS(卓視) webservice client合并到一個dll中。ZS(卓視) webservice為一個獨立進程。

現為webservice添加 ResetQueryRecordPerEncoderId 接口。以下是添加新接口過程:
webservice 端:
1.手動編寫pminfo.h,ns__ResetQueryRecordCounterPerEncoderId為新添加,頭文件全內容如下:
(注意頭文件里“//”不是注釋,是gsoap指令,不可缺少)
//gsoap ns service name:    PMInfo
//gsoap ns service protocol:    SOAP
//gsoap ns service style:    rpc
//gsoap ns service encoding:    encoded

//gsoap ns schema namespace:    urn:PMInfo

int ns__ResetQueryRecordCounterPerEncoderId(int encoder_id,int *result);
int ns__getFSwebserviceUrl(std::string *result);
int ns__getPM2_5(int encoder_id,int *result);
int ns__getPM10(int encoder_id,int *result);
int ns__getWindSpeed(int encoder_id,int *result);
int ns__getNoiseVal(int encoder_id,int *result);

2.在命令行中輸入以下命令,回車,則會生成服務端所需文件,最主要的是產生了 PMInfo.wsdl 文件。以文件可以反過來用wsdl2h.exe來生成標準的 gsoap頭文件PMInfo.h(此文件可另外命名)

soapcpp2.exe -S -x -i -L PMInfo.h -I./import/

3.執行 wsdl2h.exe -o PMInfo.h  PMInfo.wsdl 生成 自動版 PMInfo.h 這里面會將原來手動添加接口的指針類型轉換為引用類型。* =》 &
4.再執行 soapcpp2.exe -S -x -i -L PMInfo.h -I./import/ 生成自動版的引用類型gsoap相關文件。
5.編譯WebServiceSvr 服務端工程,會生成WebServiceSvr.exe.此時服務端修改完成.

Client 端:
客戶端DLL因為糅合了兩個webservice client,故相對單一client 要復雜一些。主要是命名空間的命名和區分,其實就是為了讓兩套client 互相不干擾。因為原本soapH.h soapStub.h soapC.cpp 這些文件如果在兩個client下會相互覆蓋,只有一個生效,故需用命名空間分開。
1.首先將剛生成的PMInfo.wsdl拷貝到 WebServiceClient 目錄 下,同時確保富盛的wsdl文件(“FSWebService.wsdl”)也在此目錄下:
2.wsdl2h.exe -o FS.h -qFS FSWebService.wsdl 生成FS.h作為gsoap文件(工程中不必包含).
3. wsdl2h.exe -o ZS.h -qZS PMInfo.wsdl 生成ZS.h
4. soapcpp2.exe -C -L -i -x -qZS ZS.h -I./import/ 生成卓視客戶端相關文件  注意:-x 不生成xml文件,這些文件對編碼沒用,一大堆,顯得雜亂。-qZS 使用ZS命名空間
5. soapcpp2.exe -C -L -i -x -qFS FS.h -I./import/ 生成富盛客戶端相關文件
6. soapcpp2.exe -C -penv env.h   生成環境頭文件。(單客戶端 時沒有此文件)
7. 編譯客戶端工程。結束。


Demo:
編譯testClientDLL進行測試。


更新:

--------------------------client-------------------------------------------------------
富盛webservice: http://222.35.102.20:81/
Client 端:
客戶端DLL因為糅合了兩個webservice client,故相對單一client 要復雜一些。主要是命名空間的命名和區分,其實就是為了讓兩套client 互相不干擾。因為原本soapH.h soapStub.h soapC.cpp 這些文件如果在兩個client下會相互覆蓋,只有一個生效,故需用命名空間分開。
1.首先將剛生成的PMInfo.wsdl拷貝到 WebServiceClient 目錄 下,同時確保富盛的wsdl文件(“FSWebService.wsdl”)也在此目錄下:
2.wsdl2h.exe -o FS.h -qFS FSWebService.wsdl 生成FS.h作為gsoap文件(工程中不必包含).
3. wsdl2h.exe -o ZS.h -qZS Service1.wsdl 生成ZS.h
4. soapcpp2.exe -C -L -i -x -qZS ZS.h -I./import/ 生成卓視客戶端相關文件  注意:-x 不生成xml文件,這些文件對編碼沒用,一大堆,顯得雜亂。-qZS 使用ZS命名空間
5. soapcpp2.exe -C -L -i -x -qFS FS.h -I./import/ 生成富盛客戶端相關文件
6. soapcpp2.exe -C -penv env.h   生成環境頭文件。(單客戶端 時沒有此文件)
7. 編譯客戶端工程。結束。


Demo:
編譯testClientDLL進行測試。

c#中生成wsdl文檔的方法(先編寫webservice服務,成功后,在cmd 輸入以下命令可生成wsdl文件)
disco http://192.168.2.10:8081/Service1.asmx

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家界市| 横峰县| 兴化市| 岳池县| 和静县| 固安县| 台安县| 新建县| 贞丰县| 依兰县| 女性| 新宁县| 扎赉特旗| 清水河县| 和平县| 行唐县| 西峡县| 江安县| 抚顺县| 莆田市| 金川县| 阿拉尔市| 沿河| 平凉市| 株洲县| 大渡口区| 镇远县| 都兰县| 桂东县| 周至县| 靖西县| 岑溪市| 邢台市| 临朐县| 富源县| 香港| 同心县| 班玛县| 庆元县| 宝坻区| 天峨县|