Java调用Webservice数组参数传递有问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java调用Webservice数组参数传递有问题相关的知识,希望对你有一定的参考价值。

String[] arr = new String[2];
arr[0]="abc";
arr[1]="def";
String str="myteststr";
Client client = new Client(new URL("http://xx.xx.xx.xx:9084/eee/infoService?wsdl"));
Object[] results = client.invoke("getStudentInfo",new Object[] str,arr);
上面的代码是我调用java webservice的getStudentInfo方法。参数为一个字符串数组一个字符串,但是我在后台的
getStudentInfo方法打印的时候str参数能正常打印出来,但是arr这个字符串数组却打印的不对。只是打印出是一个String的对象。并且我从后台输出.length的时候竟然是1。但是我从客户端调用的时候明明传进去的是一个长度为2的字符串数组。求高手指导,
谢谢!!
我后台打印出来的是[Ljava.lang.String;@288051

因为webservice的参数只能是基本的数据类型,如果是其他类型只能转成字符类型处理。这个问题我之前也遇到过,你把那个数组改成字符串吧,到后台再做拆分就可以了。 参考技术A 没用过webservice,不过还是提点建议给你参考:长度为2的数组做成两个参数好了,那样方法的参数变为三个,这样应该能解决问题。还有你打印出的String是不是abcdef?如果是的话,更证明了这点:参数类型有限制的,或说你还没做好映射转换。 参考技术B -- 你这样打印
System.out.println(arr[0]);
参考技术C 参数顺序没反?

以上是关于Java调用Webservice数组参数传递有问题的主要内容,如果未能解决你的问题,请参考以下文章

jquery中通过ajax调用webservice传递数组参数的问题

如何向Webservice里传递类参数

C# 调用java webservice 接口

java axis调用webservice,接口方法中的数组型参数应该怎么传参

java调用java编写的WebService接口服务端收到的参数为空

java调用(axis2)WebService传递对象类型参数(源码)