免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7545 | 回复: 4
打印 上一主题 下一主题

[C] gsoap生成wsdl问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-05 17:16 |只看该作者 |倒序浏览
我根据gsoap自带的例子自己写了一个ElectricMonitor.h头文件

内容如下:

//gsoap ns service name: ElectricMonitor
//gsoap ns service style: rpc
//gsoap ns service encoding: encoded
//gsoap ns service namespace: http://websrv.cs.fsu.edu/~engelen/ElectricMonitor.wsdl
//gsoap ns service location: http://localhost:7611

//gsoap ns schema namespace: urn:ElectricMonitor

struct TempAndHum
{
float fTemprature;
float fHumidity;
} ;

struct UpdateInfo
{
char *strServerIp[20];
char *strServerPort[5];
char *strLogIp[20];
char *strLogPort[5];
char *strUserId[20];
char *strUserPass[20];
} ;

int ns_setTempAndHum(int iHostIndex, struct TempAndHum szTempAndHum, int *iResult);

int ns_queryVer(int iHostIndex, char* *strResult);

int ns_queryTempAndHum (int iHostIndex, struct TempAndHum * szResult);

int ns_setParamar(int iHostIndex, char **strCommand, int *iResult);

int ns_setNamed(int iHostIndex, int *iResult);

int ns_setUpdateServices(int iHostIndex, struct UpdateInfo szUpdateInfo, int *iResult);

int ns_setIntoMaintain(int iHostIndex, int iType, int *iResult);

int ns_setPicTrans(int iHostIndex, char* *strPic);

int ns_setRestart(int iHostIndex, int* iResult);

int ns_setTimer(int iHostIndex, int iTimer, int * iResult);



然后在linux下编译,soapcpp2 -c ElectricMonitor.h 来编译生成wsdl文件,但是一直无法生成wsdl,编译提示成功,但是只生成以下的文件
Saving soapStub.h
Saving soapH.h
Saving soapC.c
Saving soapClient.c
Saving soapClientLib.c
Saving soapServer.c
Saving soapServerLib.c

Compilation successful  


一直都这样,请问各位大哥能不能帮我看下这.h文件是不是有错,或者我编译方法错误了?

论坛徽章:
0
2 [报告]
发表于 2011-09-05 17:20 |只看该作者
soapcpp2 -c ElectricMonitor.h
这个有问题吧~~
一般引用.h文件是  -I 选项吧

论坛徽章:
0
3 [报告]
发表于 2011-09-05 17:59 |只看该作者
这个不是引用,是soapcpp2程序编译.h文件,你说的-I是以gcc来说的吧

论坛徽章:
0
4 [报告]
发表于 2011-09-06 13:14 |只看该作者
gsoap 只看过,没正式用过!

论坛徽章:
0
5 [报告]
发表于 2012-12-11 16:52 |只看该作者
本帖最后由 cinderelladlw 于 2012-12-11 16:55 编辑

按照道理说是可以生成 *.wsdl.的。
我刚开始也是不能生成wsdl,后来不知道怎么就可以啦。
貌似是*.h文件的开头不能有空格之类的东西。
另外,也可能是权限的问题,但前者的可能性更大!!

经印证发现:最可能的问题是 你书写的方式不规范,soapcpp2不能帮你生成符合规范的wsdl文件,所以放弃了。
注意把自己的.h文件写的规范一点,按照同样的方式就可以生成wsdl文件啦。!!
注意开头不要有空格之类的不符合规定的语法等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP