[Teamcenter 2007 開發實戰] 調用web service
阿新 • • 發佈:2017-06-17
clas cpm zsh cal dcl dip lba jta ppk
開發的方式與環境搭建
開發中註意的一些問題
相似上面的代碼:
前言
在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