c++调用java6 webservice问题
小弟初识webservice,用的是java6自带的webservice,用API实现的。
最近做一个小项目,我这边是使用的java,对方使用的是c++。再项目对调的时候对方说我的webservice定义有问题。生成的都是指针。
在网上查了很多资料,感觉并没有太大的区别。我使用的是document/literal形式。
附上wsdl的具体内容,望各位高手赐教。
- XML code
<!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. -->?<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. -->?<definitions targetNamespace="http://service.ips.test.com/" name="XXWebServiceService"> ? <types> ? <xsd:schema> <xsd:import namespace="http://service.ips.test.com/" schemaLocation="http://192.168.100.186:10000/XXWebService?xsd=1" /> </xsd:schema> </types> ? <message name="oneDataTransfer"> <part name="parameters" element="tns:oneDataTransfer" /> </message> ? <message name="oneDataTransferResponse"> <part name="parameters" element="tns:oneDataTransferResponse" /> </message> ? <message name="twoDataTransfer"> <part name="parameters" element="tns:twoDataTransfer" /> </message> ? <message name="twoDataTransferResponse"> <part name="parameters" element="tns:twoDataTransferResponse" /> </message> ? <message name="threeDataTransfer"> <part name="parameters" element="tns:threeDataTransfer" /> </message> ? <message name="threeDataTransferResponse"> <part name="parameters" element="tns:threeDataTransferResponse" /> </message> ? <portType name="XXWebService"> ? <operation name="oneDataTransfer"> <input message="tns:oneDataTransfer" /> <output message="tns:oneDataTransferResponse" /> </operation> ? <operation name="twoDataTransfer"> <input message="tns:twoDataTransfer" /> <output message="tns:twoDataTransferResponse" /> </operation> ? <operation name="threeDataTransfer"> <input message="tns:threeDataTransfer" /> <output message="tns:threeDataTransferResponse" /> </operation> </portType> ? <binding name="XXWebServicePortBinding" type="tns:XXWebService"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> ? <operation name="oneDataTransfer"> <soap:operation soapAction="" /> ? <input> <soap:body use="literal" /> </input> ? <output> <soap:body use="literal" /> </output> </operation> ? <operation name="twoDataTransfer"> <soap:operation soapAction="" /> ? <input> <soap:body use="literal" /> </input> ? <output> <soap:body use="literal" /> </output> </operation> ? <operation name="threeDataTransfer"> <soap:operation soapAction="" /> ? <input> <soap:body use="literal" /> </input> ? <output> <soap:body use="literal" /> </output> </operation> </binding> ? <service name="XXWebServiceService"> ? <port name="XXWebServicePort" binding="tns:XXWebServicePortBinding"> <soap:address location="http://192.168.100.186:10000/XXWebService" /> </port> </service></definitions>
其中有三个厂家的数据声明,分别为one,two,three.
[解决办法]
传递指针没有任何意义。对于另一台电脑的另一个程序,这个指针指的内存已经不是你的电脑上的你的程序中的那个了。这个叫刻舟求剑。
你应该根据指针取得数据,把数据传过去。
[解决办法]
和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。