webservice是用JAVAEE+tomcat实现的,客户端是用C#的智能终端设备,跟winform差不多,之前做的都是返回String[][],可是在C#web引用中返回类型却变成了一维的数组了,强制转换为二维数组编译不通过,在网上查了资料说是必须要实现序列化的对象才能用,偶然的操作让我把返回类型改成了LIST,C#那边更新引用,结果java服务端出现异常,于是我又撤销了修改,但是C#那边没有更新引用,结果发现居然编译通过了,而且执行成功,于是我又调用其他的方法,结果还是编译不通过,于是我就找原因,发现web引用中的方法返回类型不一样,能运行的返回类型为Object[]其他的是String[],我灵机一动,发java服务端返回类型全都改为Object[][]类型,重启tomcat ,更新C# web引用,测试全部通过。
C#中webservice的方法,java返回的是二维数组,到这边就成一维的了。
//WebReference为web引用命名空间
WebReference.DownLoadWebServicesService dlws = new WindowsApplication1.WebReference.DownLoadWebServicesService();
String[][] s = (String[][])dlws.getBSp(0,20);//将Object[]强制转换为String[][]
for (int i = 0; i < s.Length;i++ )
{
this.listBox1.Items.Add(s[i][0]+":"+s[i][1]);
}