【问题标题】:Calling a method in a java web service, with an object as parameter, from c# client从 c# 客户端调用 java web 服务中的方法,以对象作为参数
【发布时间】:2016-10-20 22:08:10
【问题描述】:

我用axis2和tomcat用java编写了一个web服务,还用c#编写了一个客户端,我已经成功地调用了web服务器上的方法。 但是我正在努力使用一种方法,该方法必须能够将任何对象作为参数。浮点数、字符串、随机文件或图片。

我尝试在 c# 中创建一个可序列化的对象,我可以创建它并将我的 String 放入其中,然后将其作为参数发送到我的 Web 服务函数。 但我得到:抛出异常:System.Xml.dll 中的“System.InvalidOperationException”

我应该如何解决这个问题?我想我必须先序列化它,但我不明白我是如何做到的,然后将序列化的对象作为参数发送给函数。这个对象是否也必须在 Web 服务上定义?

【问题讨论】:

    标签: web-services axis2 soap-client


    【解决方案1】:

    如果您想将“任何”C# 对象发送到 Java,您将会遇到问题。 C# 对象不容易简化为 Java 对象。它们是不同的语言,并且每种语言在其对象模型中都有一些独特的功能。相反,找到一种语言中立的格式(如 Json),它可以捕获您需要的任何类型的数据。常见的数据格式,如 Int、String、Boolean 等,都可以在 JSON 中轻松捕获。也可以使用 JSON 创建更复杂的对象。

    所以,我推荐以下内容。对于要通过网络发送的每个 C# 对象,让它实现一个 toJson 方法,该方法获取它的状态并将其转储到 JSON 中,传输 JSON 并作为 Java 对象反序列化。这应该涵盖大多数情况。

    【讨论】:

    • 我猜这相当于从对象中制作了一个xml?
    • 这是我想尝试的,但我不确定如何制作 xml 并将其从 C# 客户端传递给函数。
    • 你不需要 xml 只是 Json 。首先确保您知道如何在 c# 和 Java 中处理 Json,而不必担心网络问题。然后学习如何通过网络发送该 Json 字符串
    • 你可以使用 xml,但大多数人发现 xml 处理起来更麻烦
    猜你喜欢
    • 1970-01-01
    • 2011-11-18
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多