我正在开发一个web服务,它是服务器中的java,并且必须是客户端中的c#。 参数和out参数中只有一个String,它将返回一个具有此结构的“对象”:
像这样的“Object2”:
我创建了一个java客户端,它运行完美,但c#客户端不起作用。它表示对象的“EndElement”不是预期的(意味着对象的结尾,而不是object2),并且它是一个“codError”元素。
该方法不返回一个Object数组,只返回一个Object。
我使用了httpanalyzer,以及来自java客户端和c#客户端,服务器返回一个格式良好的xml,它的包含就是它应该是的(在两个客户端中)。
我在java中使用eclipse和axis2,在c#中使用visual studio 2005和2008。
可能出现什么问题?
提前致谢!!
答案 0 :(得分:0)
因为元数据类型与java和C#都不同,所以,你不能将java的数据类型转换为c#。
我建议您返回要使用的XML数据格式。
答案 1 :(得分:0)
(制作AXIS-Java-Server和)使用Java-Server的WSDL创建C#-Client。有一个工具可以在Visual Studio命令提示符下创建Java服务器的C#类,名为SvcUtil.exe
这就像一个魅力。
答案 2 :(得分:0)
问题是由于轴和eclipse自动生成的WSDL是错误的,因此,从服务器发送到客户端的XML也是错误的。 我认为在自下而上创建Web服务时这是一个常见问题。自上而下创造它们要好得多。
服务器发送给客户端的XML就像(只是错误的部分):
<descError>OK</descError>
<codError>0</codError>
<object2>
<object2>
<firstDataArray>John</firstDataArray>
<secondDataArray>35</secondDataArray>
</object2>
<object2>
<firstDataArray>Andrew</firstDataArray>
<secondDataArray>76</secondDataArray>
</object2>
<object2>
<firstDataArray>Walter</firstDataArray>
<secondDataArray>23</secondDataArray>
</object2>
</object2>
那里有一个“object2”标签,不应该是。 它使用eclipse为java创建客户端,但它不在c#
中我刚使用自上而下的实现制作了相同的Web服务,现在效果很好!!
向所有人致敬!!