我有一个 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
对象的Collection
。 Employee
对象将包装数据库中的一些数据,并在 EmployeeNames()
方法中执行所需的转换。
这应该会让 Java 更容易阅读,因为 Java 有一个集合的概念,或者可能是一个可迭代的概念。
根据您的评论,您可以尝试将 DataSet
转换为 JSON 对象,如图所示 here 。
仅供引用,您不需要公开所有字段,只需公开您想要的字段即可。
关于java - 在 Java 客户端中使用 C# 的 webmethods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30027973/