java - 在 Java 客户端中使用 C# 的 webmethods

标签 java c# web-services

我有一个 C# 客户端可以访问的 C# Web 服务。我希望创建一个可以从同一 Web 服务接收数据的 java 客户端。 Web 服务有一个数据访问层,用于从外部数据库收集信息。我的问题是 C#-webservice 返回类型与 java-client 不兼容。这是我的示例代码:

    public DataTable EmployeeNames()
    {
        Connect();
        DataSet dataset = new DataSet();
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = new SqlCommand("SELECT [First Name], [Last Name] FROM [dbo].[CRONUS Sverige AB$Employee]", con);

        adapter.Fill(dataset);

        DataTable datatable = dataset.Tables[0];

        Close();
        return datatable;
    }

正如你所看到的,这个webmethod返回一个DataTable,据我了解,Java无法处理它。数据集也是如此。我尝试将数据转换为列表/数组等,但随后我遇到了列问题(例如,我该如何处理列名?)。我在这里别无选择,感谢任何帮助。

附注C# 客户端运行完美。

最佳答案

您说您已尝试将数据转换为列表或数组,因此我认为您可以更改方法签名。

您可以做的是返回Employee对象的CollectionEmployee 对象将包装数据库中的一些数据,并在 EmployeeNames() 方法中执行所需的转换。

这应该会让 Java 更容易阅读,因为 Java 有一个集合的概念,或者可能是一个可迭代的概念。

根据您的评论,您可以尝试将 DataSet 转换为 JSON 对象,如图所示 here

仅供引用,您不需要公开所有字段,只需公开您想要的字段即可。

关于java - 在 Java 客户端中使用 C# 的 webmethods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30027973/

相关文章:

java - 有没有办法将列标题包装在 SWT 表头中?

java - 覆盖通过 FileDescriptor FD 获取的 FileOutputStream 中的属性文件

java - Mac 状态栏项目但不在 Dock 上

c# - 在 C# 控制台应用程序中处理 HTTP 请求

java - 使用 Java 聚合两个层次树的笛卡尔积

c# - HttpListener 构造函数在系统启动时花费的时间太长

winforms - 在 Windows 应用程序中调用 webservice

javascript - 获取类型错误 : Cannot set property '0' of undefined when trying to add to array

java - 使用 Java 从无效的 SOAP 1.1 消息中获取值(value)

c# - 在 2 个 WPF 窗口之间发送事件