今天終於搞定了Qt gsoap2 8的編譯了

2021-08-30 17:34:08 字數 1590 閱讀 1212

1、qt:使用gsoap做乙個簡單的cs系統----

2、qt+gsoap呼叫webservice----

3、how to use gsoap with qt for web service client----

4、qt 使用gsoap發布webservice服務與呼叫webservice服務----

學習資料:

某大學資料: 

第二部:檢視wsdl

qt貌似用哪個版本沒太大關係,gsoap匯出的**可以連stl都不帶,跨平台性做的很徹底了。

假設wsdl的url如下:

那麼,從url已經可以看出,

a, 我們webservice的位址(endpoint)是 

b. 我們的操作介面是readdispatchingplandatafromsap

或者看到如下描述

但我們沒**,因此先找到wsdl,一般如下:

?wsdl         

這是全部介面都包含在內的頁面,描述也包括了,你的介面由哪個出口返回。

第三步:匯出**

一直cd到gsoap的gsoap\bin\win32目錄下,會看到有兩個程式 wsdl2h.exe 和 soapcpp2.exe

wsdl2h.exe 根據wsdl內容,匯出乙個標頭檔案,就是把webservice的藉口c++函式化。

soapcpp2.exe 根據函式化後的標頭檔案,匯出需要用到的類和類**。

兩個程式都可以加 -h 檢視詳細的配置例如:wsdl2h -h 和 soapcpp2 -h 

使用之前建議大家先看看,否則後面我的配置是看不懂的,而且配置大小寫意義完全不同。

為了可以在win,linux甚至嵌入式裝置上執行,我使用了如下配置

wsdl2h -s -o test.h ?wsdl

這樣test.h檔案就出來了,然後根據這個檔案,繼續以下指令

soapcpp2 -clx -if:\gsoap-2.8\gsoap\import test.h

這裡注意,我的soap原始碼放在f:\gsoap-2.8上了。

第四步:要注意的地方:

至此,其實gsoap要匯出的東西都匯出了。

把匯出的檔案都加入到工程內,要注意的是,會出現乙個***.nsmap的檔案。

這個檔案需要當成是標頭檔案那樣include進去。

根據wsdl,一般的介面假設叫sendmessage,那麼就會有如下:

參數列用到的 傳入引數用的類  _ns1__sendmessage  和   傳出引數用的類 _ns1__sendmessageresponse

用到這些引數的函式 soap_call___ns1__sendmessage 這麼一套東西。

裡面除了soap操作類外,要填寫的endpoint和action都會自動填寫好。

配合qt5.8在win和ubuntu16.04上都測試通過了。

今天終於搞定ORACLE了

昨天在windowsxp professioal 下面搞了很久,也查了不少的資料,就是執行不了oracle器,每次連線都報沒有listener的錯誤,本來這個東西安裝對於我來說就是乙個新事物,還要給我出一些這樣的問題,叫我怎麼搞得出來嗎。還好,今天要裝rising的企業版,所以就把作業系統ghost...

今天終於搞定了USB

前幾天裝了ml1.2,什麼都搞定了,就是usb搞不定。折騰了好幾天。我以前是修改rc.sysinit,但是怎麼改都不行。我的機器配置 piv2.8ghz,512m,80g 40g 雙硬碟 gf440 64m vibra128,cdrw。intel晶元組。今天上午,我想起了最後一招,重新編譯核心。我以...

終於搞定了Jtag

jtag一直是傳說中的神器.以前刷dd wrt變磚的時候就想用它玩玩,結果當時把無線路由忙刷好了,買回來的線就一直在抽屜中沉睡.這幾天玩嵌入系統,把那根簡陋的線找出來,看看原理,準備施展一番,沒想到居然左右連不上裝置.今天終於連線成功,整理一下遇到的問題.因為是公司的裝置,還好能找到電路圖.1.jt...