使用gsoap编译下面的wsdl文件,生成c++文件中总是缺少函数,通过查看wsdl2h.exe生成的.h文件终于发现是namespace的问题,把namespace都改成"http://10.130.41.232:8083/RMS/webservice/RMS"就可以了。
不懂Webservice,不理解原因。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:impl="http://10.130.41.232:8083/RMS/webservice/RMS" xmlns:intf="http://10.130.41.232:8083/RMS/webservice/RMS" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://10.130.41.232:8083/RMS/webservice/RMS">
<!--WSDL created by Apache Axis version: 1.2
Built on May 03, 2005 (02:20:24 EDT)-->
<wsdl:message name="RecordStartFileRequest">
<wsdl:part name="RECORD_NAME" type="soapenc:string"/>
<wsdl:part name="RECORD_FORMAT" type="soapenc:string"/>
<wsdl:part name="DEVICE_IP" type="soapenc:string"/>
<wsdl:part name="PATH" type="soapenc:string"/>
<wsdl:part name="SESSION_ID" type="soapenc:string"/>
<wsdl:part name="START_TIME" type="soapenc:string"/>
<wsdl:part name="CALL_NUMBER" type="soapenc:string"/>
<wsdl:part name="CALLED_NUMBER" type="soapenc:string"/>
<wsdl:part name="CALL_TYPE" type="soapenc:string"/>
<wsdl:part name="DN" type="soapenc:string"/>
<wsdl:part name="AGENT_ID" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="SelectStartFileResponse">
<wsdl:part name="SelectStartFileReturn" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="recordFileRequest">
<wsdl:part name="FileName" type="soapenc:string"/>
<wsdl:part name="StartTime" type="soapenc:string"/>
<wsdl:part name="EndTime" type="soapenc:string"/>
<wsdl:part name="DeviceIP" type="soapenc:string"/>
<wsdl:part name="FilePath" type="soapenc:string"/>
<wsdl:part name="DN" type="soapenc:string"/>
<wsdl:part name="AgentId" type="soapenc:string"/>
<wsdl:part name="CallerDN" type="soapenc:string"/>
<wsdl:part name="CalledDN" type="soapenc:string"/>
<wsdl:part name="CallDirect" type="soapenc:string"/>
<wsdl:part name="ConteactID" type="soapenc:string"/>
<wsdl:part name="FileType" type="soapenc:string"/>
<wsdl:part name="RecordType" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="SelectStartFileRequest">
<wsdl:part name="XMLFILE" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="RecordStartFileResponse">
<wsdl:part name="RecordStartFileReturn" type="soapenc:string"/>
</wsdl:message>
<wsdl:message name="recordFileResponse">
<wsdl:part name="return" type="soapenc:string"/>
</wsdl:message>
<wsdl:portType name="RecordService">
<wsdl:operation name="recordFile" parameterOrder="FileName StartTime EndTime DeviceIP FilePath DN AgentId CallerDN CalledDN CallDirect ConteactID FileType RecordType">
<wsdl:input name="recordFileRequest" message="impl:recordFileRequest"/>
<wsdl:output name="recordFileResponse" message="impl:recordFileResponse"/>
</wsdl:operation>
<wsdl:operation name="SelectStartFile" parameterOrder="XMLFILE">
<wsdl:input name="SelectStartFileRequest" message="impl:SelectStartFileRequest"/>
<wsdl:output name="SelectStartFileResponse" message="impl:SelectStartFileResponse"/>
</wsdl:operation>
<wsdl:operation name="RecordStartFile" parameterOrder="RECORD_NAME RECORD_FORMAT DEVICE_IP PATH SESSION_ID START_TIME CALL_NUMBER CALLED_NUMBER CALL_TYPE DN AGENT_ID">
<wsdl:input name="RecordStartFileRequest" message="impl:RecordStartFileRequest"/>
<wsdl:output name="RecordStartFileResponse" message="impl:RecordStartFileResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="RMSSoapBinding" type="impl:RecordService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="recordFile">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="recordFileRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.130.41.232:8083/RMS/webservice/RMS"/>
</wsdl:input>
<wsdl:output name="recordFileResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.130.41.232:8083/RMS/webservice/RMS"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SelectStartFile">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="SelectStartFileRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://recordService.webservice.RMS.com"/>
</wsdl:input>
<wsdl:output name="SelectStartFileResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.130.41.232:8083/RMS/webservice/RMS"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RecordStartFile">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="RecordStartFileRequest">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://recordService.webservice.RMS.com"/>
</wsdl:input>
<wsdl:output name="RecordStartFileResponse">
<wsdlsoap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://10.130.41.232:8083/RMS/webservice/RMS"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="RecordServiceService">
<wsdl:port name="RMS" binding="impl:RMSSoapBinding">
<wsdlsoap:address location="http://10.130.41.232:8083/RMS/webservice/RMS"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>