我使用 gsoap 2.7.17 的 wsdl2h 和 soapcpp2 工具为 java Axis 1.4 Web 服务 WSDL 创建了 C 客户端。
我在我的 iphone 应用程序中使用这些 soap 客户端。我能够成功编译应用程序。
但是,当我尝试从客户端文件调用函数时,它在响应结构中返回 nil 值,但函数调用的返回码是 SOAP_OK。
我尝试调试 soap 文件,发现在从服务器获取数据时,标签不匹配,因此,客户端忽略响应并返回 nil。
在 Tomcat 服务器上的同一台机器上运行的独立 Web 服务。
所以,任何人都可以帮忙,可能是什么问题。
最佳答案
您需要转储在服务器上接收到的 xml。听起来为您的 c 客户端生成的任何 stub 都不完整。我对 C 客户端的经验为零,但是根据您发送的 xml 与预期的差异有多大,修复可能很容易,或者几乎不可能修复。
Axis 1.4 可以为某些 java 对象生成非常难看的 xml。根据您可以控制的内容,您可能会更快地摆弄服务器代码,以便 wsdl 轴使用您的 C 工具生成更好的解析。
关于java - 将 Java Web 服务 WSDL 与 gsoap C 客户端一起使用时出现标记不匹配错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4720669/