我有一个C#webservice,C#-client可以访问。我希望创建一个可以从同一Webservice接收数据的java客户端。 Webservice有一个数据访问层,用于从外部数据库收集信息。我的问题是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无法处理。 DataSet也是如此。我已经尝试将数据转换为List / Array等,但后来我遇到了列的问题(例如我如何处理列名?)。我在这里没有选择,感谢任何帮助。
P.S。 C#客户端运行良好。
答案 0 :(得分:2)
你说过你曾尝试将数据转换为列表或数组,因此我假设您可以更改方法签名。
您可以做的是返回Collection
Employee
个Employee
个对象。 EmployeeNames()
对象将包围您在数据库中的一些数据,并在DataSet
方法中执行所需的翻译。
这应该使Java更容易阅读,因为Java具有集合的概念,或者可能是可迭代的。
根据您的评论,您可以尝试将function init()
{ setTimeout(init, 5000);
// do sthg
}
转换为JSON对象,如图所示here。
作为一个FYI,您不需要公开所有字段,只需要显示您想要的字段。
答案 1 :(得分:0)
您可以从任何地方拨打网络服务。无论是来自C#,Java还是其他任何地方。问题是您如何公开您的Web服务。我建议将它作为REST服务公开,这样就可以从任何地方访问它。 Web上有大量关于如何实现RESTful服务的信息。一旦实现了REST服务,就可以使用您选择的环境中的HTTP GET,PUT,UPDATE,ETC等来访问它。