1

我正在开发一个webservice,它在服务器中是java,在客户端必须是c#。只有一个字符串作为 in 参数,作为 out 参数,它将返回一个具有以下结构的“对象”:

  • 字符串编码错误
  • 字符串描述错误
  • Object2[] 数组数据

像这样的“Object2”:

  • 字符串 firstDataArray
  • Int secondDataArray

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

该方法不返回对象数组,仅返回一个对象。

我使用了httpanalyzer,以及从java客户端和c#客户端,服务器重新调整了一个格式良好的xml,它的包含是它应该是的(在两个客户端中)。

我在 java 中使用 eclipse 和 axis2,在 c# 中使用 Visual Studio 2005 和 2008。

有什么问题?

提前致谢!!

4

3 回答 3

0

因为 java 和 C# 的元数据类型完全不同,所以不能将 java 的数据类型转换为 c#。

我建议你返回 XML 数据格式来使用。

于 2012-05-08T07:22:58.737 回答
0

(制作一个 AXIS-Java-Server 并)使用 Java-Server 的 WSDL 创建 C#-Client。在 Visual Studio 命令提示符下有一个用于创建 Java 服务器的 C# 类的工具,名为SvcUtil.exe

这就像一个魅力。

于 2012-05-08T07:41:41.850 回答
0

问题是axis和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 服务,现在效果很好!!

非常感谢大家!!

于 2012-05-10T15:14:33.707 回答