c++调用java6 webservice问题

Geminit 2012-05-22 10:23:52
小弟初识webservice,用的是java6自带的webservice,用API实现的。
最近做一个小项目,我这边是使用的java,对方使用的是c++。再项目对调的时候对方说我的webservice定义有问题。生成的都是指针。
在网上查了很多资料,感觉并没有太大的区别。我使用的是document/literal形式。
附上wsdl的具体内容,望各位高手赐教。


<!-- 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.
...全文
180 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Geminit 2012-09-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 7 楼 的回复:
引用 5 楼 的回复:

和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。


其实我的webservice是用java6 API生成的。其中代码为
public int oneDataTransfer(String xmlString){

}

其实方法的定义就是这么简单,传入String文本,返回int是否成功。……
[/Quote]

具体的我也不是很清楚,C++客户端也没什么问题,找到相应的soap支持组件就可以了。
http://www.yesky.com/20020517/1611650.shtml或许对你有帮助,不过具体的开发步骤确实不清楚,因为我们这边只是做服务端,客户端是人家做得,不过应该不难,找到对应的东西就可以了。
不行你就多看看c++在soap方面的知识。只能这么多了……
yuebinghaoyuan 2012-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 5 楼 的回复:

和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。


其实我的webservice是用java6 API生成的。其中代码为
public int oneDataTransfer(String xmlString){

}

其实方法的定义就是这么简单,传入String文本,返回int是否成功。
根据代码生成之后就是这样的……
[/Quote]




问题解决了吗?我也遇到此问题,我是C++客户端,java已经调用成功,而我的C++客户端一直未结果,肿么回事啊。急求啊。
yuebinghaoyuan 2012-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
引用 5 楼 的回复:

和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。


其实我的webservice是用java6 API生成的。其中代码为
public int oneDataTransfer(String xmlString){

}

其实方法的定义就是这么简单,传入String文本,返回int是否成功。
根据代码生成之后就是这样的……
[/Quote]




问题解决了吗?我也遇到此问题,我是C++客户端,java已经调用成功,而我的C++客户端一直未结果,肿么回事啊。急求啊。
Geminit 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。
[/Quote]

其实我的webservice是用java6 API生成的。其中代码为
public int oneDataTransfer(String xmlString){

}

其实方法的定义就是这么简单,传入String文本,返回int是否成功。
根据代码生成之后就是这样的wsdl形式。

<operation name="oneDataTransfer">
<soap:operation soapAction="" />

<input>
<soap:body use="literal" />
</input>

<output>
<soap:body use="literal" />
</output>
</operation>


但其实,其它两个厂家采用java已经调用成功,纳闷啊大侠???
Geminit 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
小弟初识webservice,用的是java6自带的webservice,用API实现的。
最近做一个小项目,我这边是使用的java,对方使用的是c++。再项目对调的时候对方说我的webservice定义有问题。生成的都是指针。
在网上查了很多资料,感觉并没有太大的区别。我使用的是document/literal形式。
附上wsdl的具体内容,望各位高手赐教。

XML code

<……
[/Quote]

我是服务器,对方是客户端。因该不存在这种问题。他是说在生成本地local客户端代码的时候。参数都是指针。我也很纳闷,不知道是他的方法错误,还是我的定义错误。所以在此求助。
其他两个厂家采用java已经可以实现调用。仅剩一家c++的客户端。
threenewbee 2012-05-22
  • 打赏
  • 举报
回复
和xml没有任何关系,xml只是数据的载体而已。你的问题是,你传的数据有问题。
Geminit 2012-05-22
  • 打赏
  • 举报
回复
难道c++和java调用就有这么大的区别吗?求高人解答!!!
Geminit 2012-05-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

传递指针没有任何意义。对于另一台电脑的另一个程序,这个指针指的内存已经不是你的电脑上的你的程序中的那个了。这个叫刻舟求剑。

你应该根据指针取得数据,把数据传过去。
[/Quote]

请问楼上,对于xml文件,有何高见??是在何处定义错误??
也只是在c++的调用出问题。而且我并没有验证过是否有问题。
对于其他两个厂家,他们使用的是Java语言。完全没有任何问题。可以正常的调用运行。
对于c++不是很了解。我的webservice服务器使用linux debian6
threenewbee 2012-05-22
  • 打赏
  • 举报
回复
传递指针没有任何意义。对于另一台电脑的另一个程序,这个指针指的内存已经不是你的电脑上的你的程序中的那个了。这个叫刻舟求剑。

你应该根据指针取得数据,把数据传过去。

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧