標籤:function yam xom g3d cga dns jdk rtk moc
前言
在TC的服務端開發中, 能夠使用gsoap 來調用web service.
怎樣使用 gsoap , 參考
gsoap 實現 C/C++ 調用web service 接下來介紹怎樣在TC中進行開發。
開發的方式與環境搭建
在TC的CF端調用webservice , 能夠把gsoap 產生和完畢的代碼打成一個 .lib 的檔案(windows, 在linux 下是 .a 的檔案)
這裡使用的開發工具是 visual studio .
建立一個空的項目。 語言選 C++的就能夠了
建立完畢之後的路徑如上。
上面的檔案結構中。 除了 libsoa.h 和libsoa.c 檔案外。 其它的檔案都是gsoap依據 wsdl 產生的.
在libsoa.c 這份檔案中面。 我們寫一些封裝 function 來供外部調用。
原因是gsoap 產生出來的function 名稱都比較長,不方便使用
相似 ns1__XXXXXX 這種。
要產產生 .lib 檔, 在項目的 屬性中做例如以下設定:
設定完畢, 並完畢相關代碼的編寫, 就能夠產生 .lib 檔了
點擊 產生 --》 產生解決方式
這種話在項目的路徑下會產生一個Debug 檔案夾。
途徑相似:
開發中注意的一些問題
returnflag=soap_call___ns1__batchExecuteSqls(&meSoap,Parameter.EndPoint, NULL, batchExecuteSqlsRequest, batchExecuteSqlsResponse); if (returnflag==28) { *ReturnCode=strdup("fail"); *ReturnMsg=strdup("Could not connect to web service host!"); } else if(batchExecuteSqlsResponse!=NULL) { *ReturnCode= strdup(batchExecuteSqlsResponse->ReturnCode); *ReturnMsg=strdup(batchExecuteSqlsResponse->ErrorMessage); }
相似上面的代碼:
傳回值是28 代表不能串連 web service 的server。 這個時候response 裡面自然也就是空的了。
另外要注意的一個問題是:
以上產生的 .lib 是能夠在Visual studio 中進行調試的。
可是在協作開發的時候。 假設遇到無法調試的狀況, 能夠在本機使用原始碼又一次產生一個 .lib 檔試試
[Teamcenter 2007 開發實戰] 調用web service