### 前言
在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++的就可以了
![](https://box.kancloud.cn/2016-02-18_56c5449062ad9.jpg)
创建完成之后的路径如上。
上面的文件结构中, 除了 libsoa.h 和libsoa.c 文件外, 其他的文件都是gsoap根据 wsdl 产生的.
在libsoa.c 这份文件里面, 我们写一些包装 function 来供外部调用。原因是gsoap 产生出来的function 名称都比较长,不方便使用
类似 ns1__XXXXXX 这样的。
要产生成 .lib 档, 在项目的 属性中做如下设置:
![](https://box.kancloud.cn/2016-02-18_56c54491703ff.jpg)
设置完成, 并完成相关代码的编写, 就可以产生 .lib 档了
点击 生成 --》 生成解决方案
这样的话在项目的路径下会产生一个Debug 目录。
途径类似:
![](https://box.kancloud.cn/2016-02-18_56c54491810c2.jpg)
### 开发中注意的一些问题
~~~
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