### 前言
在TC的服務端開發中, 可以使用gsoap 來調用web service.
如何使用 gsoap? , 參考
# [gsoap 實現 C/C++ 調用web service ](http://blog.csdn.net/oscar999/article/details/40342301)
接下來介紹如何在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 的服務器。 這個時候response 里面自然也就是空的了。
另外要注意的一個問題是:
以上產生的 .lib 是可以在Visual studio 中進行調試的。
但是在協作開發的時候, 如果遇到無法調試的狀況, 可以在本機使用源碼重新產生一個 .lib 檔試試
###
- 前言
- 國內外PLM/PDM廠商情況
- PLM系統與選擇
- Teamcenter及其一攬子產品解決方案初步介紹
- Teamcenter 開發利器組合介紹。 Eclipse + Visual Studio
- TeamCenter開發系統設計系列之一
- linux下自動部署Teamcenter Enterprise 的服務端腳本
- Teamcenter 入門開發系列問答(1)
- PLM基本概念收集
- Teamcenter 入門開發系列問答(2)
- Teamcenter 入門開發系列問答(3)
- Teamcenter 入門開發系列問答(4)
- Teamcenter 入門開發系列問答(5)
- Teamcenter開發問題之-- relation 無法創建 and 無法check in
- Teamcenter(Enterprise 2007) Admin 手法之 -- 移除relation
- Teamcenter 2007 之 Part 物件關聯
- Teamcenter 2007之錯誤信息提示
- Teamcenter(Enterprise 2007) 開發之- 快速搭建開發環境(windows)
- Teamcenter 開發中的一些問題
- Teamcenter - Index search 找不到相關物件的解決方法
- Teamcenter2007 安裝步驟
- [Teamcenter 2007 開發系列] 整合Extjs 展現頁面組件
- Teamcenter2007 開發環境搭建和技巧
- [Teamcenter 2007 開發系列] web 非空驗證
- [Teamcenter 2007 開發實戰] 獲取錯誤或提示信息
- Teamcenter Web 端自動登錄 (SSO)
- [Teamcenter 2007 開發實戰] 調用web service
- [碼海拾貝 之TC] 呼叫外部應用程序或腳本
- [碼海拾貝 之TC] 使用View 定義動態的Class