C#webservice客户端不使用java服务器

时间:2012-05-08 07:12:40

标签: c# java web-services client

我正在开发一个web服务,它是服务器中的java,并且必须是客户端中的c#。 参数和out参数中只有一个String,它将返回一个具有此结构的“对象”:

  • String codError
  • String descError
  • Object2 [] arrayData

像这样的“Object2”:

  • String firstDataArray
  • Int secondDataArray

我创建了一个java客户端,它运行完美,但c#客户端不起作用。它表示对象的“EndElement”不是预期的(意味着对象的结尾,而不是object2),并且它是一个“codError”元素。

该方法不返回一个Object数组,只返回一个Object。

我使用了httpanalyzer,以及来自java客户端和c#客户端,服务器返回一个格式良好的xml,它的包含就是它应该是的(在两个客户端中)。

我在java中使用eclipse和axis2,在c#中使用visual studio 2005和2008。

可能出现什么问题?

提前致谢!!

3 个答案:

答案 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服务,现在效果很好!!

向所有人致敬!!