我有一個應用程序必須使用SOAP與SmartServer,這是一個嵌入式設備進行通信。它接受的SOAP消息沒有名稱空間,但是gSAOP使用名稱空間發送它們。因此,他們是這樣的:文件丟失與soapcpp2版本2.8.1
<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,old-stable)32位。