c++ - soapcpp2 版本 2.8.1 丢失的文件

标签 c++ linux gsoap

我有一个应用程序必须使用 SOAP 与嵌入式设备 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 位。

最佳答案

关于您的问题:

...缺少以下文件: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。

希望对您有所帮助, 赖克

关于c++ - soapcpp2 版本 2.8.1 丢失的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5258322/

相关文章:

c++ - gSoap 不包括 Envelope 和 Body 开始标签

c++ - 异或、非或(使用 Eigen 矩阵库)的 bool 乘法

c++ - 这个用于计算指数的递归代码的运行时间是多少?

C++ 问题读取文本文件

linux - 使用 at 运行带有标志的 .txt 文件或命令

c - 用于数据采集和绘图的单独线程

c++ - 一次读取 .dat 文件两个字节

c - 我们为什么以及如何重定向调试语句?

c++ - 如果我使用 "test.h"是否与 "path/test.h"相同?

c++ - XML/C++ 类型绑定(bind)出错