最近我有一个使用gSOAP构建的小型C ++ SOAP客户端项目(ubuntu linux)。我正在使用2个Web服务类,我相信我已根据文档正确创建了这些类。但是,我的代码存在问题
#include "envH.h"
#include "betfairBFGlobalServiceProxy.h"
#include "betfairBFExchangeServiceProxy.h"
//#include "betfair.nsmap"
#include <iostream>
#include <string>
// Following included to prevent ligsoap++ complaining of undefined references
// to 'namespaces'
SOAP_NMAC struct Namespace namespaces[] = {};
using namespace std;
using namespace betfair;
int main()
{
BFGlobalServiceProxy bf;
BFExchangeServiceProxy betfair2; /* CRASH!! */
return 0;
}
我想对两个Web服务进行API调用,但我的程序在创建第二个服务代理对象时崩溃。我使用了wsdl2h -gbetfair选项和soapcpp2 -i -n选项,并在使用C ++命名空间创建多个客户端服务时,根据文档中的要求创建了一个新的env.h文件,以避免链接到libgsoap ++时出现链接器错误。任何人都可以看到我做错了什么???
答案 0 :(得分:0)
我无法重现这个问题,所以我不确定我的猜测。数组名称空间在.nsmap文件中定义。您的代码在.incmap文件的#include中有注释,如果此数组为空,gSOAP可能不喜欢。你真的必须保持#include“betfair.nsmap”注释掉吗?