来自C#Web服务的Java Web服务客户端中的数据集

来自C#Web服务的Java Web服务客户端中的数据集

问题描述:

我是Java和C#中的新手,因此请耐心等待。来自C#Web服务的Java Web服务客户端中的数据集

我在C#中创建了一个Web服务,连接到我的MSSQL Server数据库中的一个表的.Net框架。我在Eclipse中使用Web服务客户端创建了一个Java应用程序,该客户端通过本地主机与SoapProxy连接到Visual Studio中的Web服务。

问题是,我在C#中创建的webmethod是从MSSQL返回库表作为DataSet,我不知道如何作为方法调用并在Java客户端的控制台中打印。

是否有任何更好的方法去web方法从MSSQL我的表到VisualStudio,然后将其打印在我的Eclipse控制台?

的Java Web服务客户端 http://imgur.com/a/oCGzy

C#Web服务

[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
[System.Web.Script.Services.ScriptService] 
public class WSDB : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public string HelloWorld() 
    { 
     return "Hello World"; 
    } 

    [WebMethod] 
    public DataSet getBooks() 
    { 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = "server=.;database=Library;user=sa;password=1234"; 
     SqlDataAdapter da = new SqlDataAdapter("select * from Library", con); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     return ds; 



    } 

} 

我应该在我的Java Web服务客户端代码看起来象调用并在控制台打印此DataSet中的最简单的最基本的方式? (格式不必是相当)

更新

我尝试了不同的方法用一个新的WebMethod,连接到我的ADO.Net实体框架数据库。

但我仍然无能为力,如何调用和打印我的Java Web客户端中的方法,有什么建议吗?

[WebMethod] 
    public Library GetLibInfo(string booknr) 
    { 
     return libEnt.Libraries.Single(x=> x.booknr == booknr); 
    } 

我不是一个C#程序员但是从我了解的数据集我看到这是一个有状态的对象,你应该只从WS返回序列化对象。

因此,把你的结果放入一个简单的数组并返回。

反正你应该叫somethink这样的:

,你应该有这样的事情:

WSDBLocator service = new WSDBLocator(); 

GetBooksReponseGetBookResults res = service.getGetBooks(); 

SomeKindOfCollection col = res.someMethod(); 
for(SomeKindOfObject o : col){ 
    System.out.print(o.getProperty1()); 
    System.out.print(","); 
    System.out.print(o.getProperty2()); 
    System.out.print(","); 
    System.out.printLn(o.getProperty3()); 
} 
+0

感谢输入,但我这个编码作为学校项目的一部分,我现在我使用的WebMethod其他4级的客户,这使得它在一个痛苦的屁股改变将WebMethod为它做最后的客户。 从我读过的应该可以将一个数据集转换为一个字符串数组,然后在java控制台中打印数组,但我不确定是否确切地这样做。另外一些代码示例对于Java和C#都会非常棒,因为我真的是一个初学者,现在我已经坚持了几个小时的最后一部分。 – Arkad

如果格式是不是一个问题,你可以导入从DataTable中的数据转换成一个对象数组并返回它。

[WebMethod] 
    public object[] javaCustomer() 
    { 
     connectCronus(); //changes the ConnectionString 
     int count = 0; 
     cmd = new SqlCommand("select [Name],[City] from [CRONUS Sverige AB$Customer];"); 
     dt = returnDataTable(); 
     object[] ar = new string[dt.Rows.Count]; 
     foreach (DataRow row in dt.Rows) 
     { 
      ar[count] = row["Name"].ToString() + "\t" + row["City"].ToString(); 
      count++; 
     } 
     return ar; 
    } 

然后,它只是打印它在你的Java客户端的问题。

for(Object o : proxy.javaEmployee()){ 
     System.out.println(o); 
}