soapcpp2版本2.8.1缺少文件

时间:2011-03-10 10:25:43

标签: c++ linux gsoap

我有一个必须使用SOAP与SmartServer进行通信的应用程序,SmartServer是一个嵌入式设备。它接受的SOAP消息没有名称空间,但gSAOP使用名称空间发送它们。所以他们看起来像这样:

<ns3:List>
 <ns3:iLonItem>
  <ns3:xSelect></ns3:xSelect>
 </ns3:iLonItem>
</ns3:List>

而不是:

<List>
 <iLonItem>
  <xSelect></xSelect>
 </iLonItem>
</List>

我首先尝试将WSDL和XSD文件中的限定符更改为不合格,然后重新生成文件,并将不合格的更改为限定。但我得到的最好的是

<ns3:List>
 <iLonItem>
  <xSelect></xSelect>
 </iLonItem>
</ns3:List>

哪个看起来更好,但列表仍然是命名空间。

然后我发现this网站声明我必须使用SOAP_XML_DEFAULTNS选项,所以我试过了。这在开始时没有用,但后来我发现我必须使用版本2.8.1而不是2.7.9l-0.2(Debian的标准版本)。所以我卸载了Debian版本并下载了2.8.1并复制了文件。但是现在当我尝试使用soapcpp2生成文件时,缺少以下文件:soapClient.cpp,soapClientLib.cpp,soapProxy.h以及许多* .req.xml和* .res.xml文件。我特别需要soapClient.cpp文件来编译我的项目。

我尝试了gsoap / bin目录中的标准二进制文件,并按照INSTALL.txt中的描述从gsoap目录重建src和wsdl文件,但这些文件都没有按照我的意愿运行。

有人能帮助我一点吗?

如果重要的话,我使用的是Debian Linux 5.0.8版(Lenny,旧稳定版)32位。

1 个答案:

答案 0 :(得分:0)

关于你的问题:

...缺少以下文件:soapClient.cpp,soapClientLib.cpp,soapProxy.h以及许多* .req.xml和* .res.xml文件。我特别需要soapClient.cpp文件来编译我的项目。

根据链接http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc8(参见第9.1节) 它看起来好像你可能使用了错误的选项设置来调用soapcpp2。您确定没有使用-S开关指定“仅生成服务器端代码”吗?仅限客户端,您将使用-C。对于服务器端和客户端文件,不需要任何开关。此外,生成代理文件需要使用-i。

希望这有帮助, Ryyker