CXF调用.NET的WebService,并返回string[]数组问题

问题描述

CXF调用.NET的WebService,在WebService中返回一个string[]数组,而在WSDL中描述为ArrayOfString,请问我该如果转化这个类型并取出数据?我是这样来调用的:DynamicClientFactory dcf = DynamicClientFactory.newInstance();org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:16249/WebSite1/Service.asmx?wsdl");Object reply = null;try {reply = client.invoke("testArray", new Object[] {});} catch (Exception e) {e.printStackTrace();}Object[] replys = (Object[]) reply;for (Object o : replys) {System.out.println(o);}打印出来的是一个ArrayOfString类型。我该怎样取得里面的数据呢?这样调对不对?还有别的办法吗? 问题补充:7454103 写道

解决方案

这个是 ArrayOfString 的源码!相信你看了之后就知道咋遍历或者读内容了!一般你用工具生成 客户端的时候 这些都生成好了的!public class ArrayOfString { @XmlElement(required = true, nillable = true) protected List<String> string; public List<String> getString() { if (string == null) { string = new ArrayList<String>(); } return this.string; }}ArrayOfString result = service.getWeateherByCity("北京");if(result != null) {List<String> weathers = result.getString();for(int i = 0; i < weathers.size(); i++) {System.out.println(weathers.get(i));}
解决方案二:

引用java.lang.ClassCastException: services.wms.huike.com.ArrayOfString cannot be cast to com.huike.wms.services.ArrayOfString 这个错应该是你 的 ArrayOfString 引入的类型不对!自己检查下:引入: com.huike.wms.services.ArrayOfString [WebMethod] public string HelloWorld() { return "Hello !! this is lucky"; } [WebMethod] public string[] testArray() { return new string[]{"1","2","3"}; } 这个两个方法 返回值的类型不同! 可能不能按统一的方式处理!引用ArrayOfString result = service.getWeateherByCity("北京"); if(result != null) { List<String> weathers = result.getString(); for(int i = 0; i < weathers.size(); i++) { System.out.println(weathers.get(i)); } 这个是肯定行的! 我本地跑了 好多遍了! 没问题!

时间: 2024-08-31 19:48:23

CXF调用.NET的WebService,并返回string[]数组问题的相关文章

C#开发webservice调用SAP的webservice后返回值是表类型,如何获取值?

问题描述 求助,C#调用SAP的webservice后返回值是表类型,如何获取表的行数? 解决方案 解决方案二:什么叫表类型?DataTable?SAP天堂也返回这样的东西?解决方案三:ws返回的就是xml了,里面的数据是可以获取的.至于你说的表,具体是什么?如果是datatable,好办,解析xml就是了.如果单单是某个表名,那就啥都不能获取到.解决方案四:引用2楼guwei4037的回复: ws返回的就是xml了,里面的数据是可以获取的.至于你说的表,具体是什么?如果是datatable,好

java 通过 xfire 调用金蝶K3 webservice接口 返回null

问题描述 代码很简单如下Client client = new Client(new URL("http://192.168.8.132/KDWEBSERVICE/Department.asmx?wsdl")); String strError =""; String strError1 =""; String strError2 =""; Object[] results = client.invoke("Quer

使用cxf创建了一个webservice soap 服务 传数组参数 到服务端变null

问题描述 服务可以正常访问而且其他的字符串参数都能传过去当参数为字符串数组的时候到服务端就变null求指点 解决方案 解决方案二:求支招版主呢解决方案三:你的问题没描述清楚.你的接口里面参数如果是字符串类型,那你就不可以传字符串数组类型.解决方案四:引用2楼chz415767975的回复: 你的问题没描述清楚.你的接口里面参数如果是字符串类型,那你就不可以传字符串数组类型. 当然是字符串数组拉

web service-jboss5环境下,cxf调用webservice不返回内容,也不报错

问题描述 jboss5环境下,cxf调用webservice不返回内容,也不报错 有谁碰到过这种情况,cxf调用webservice在jar包运行下没问题, 换到jboss5下面就会有问题,但是不报错,也不返回任何东西 解决方案 http://www.iteye.com/problems/47007 解决方案二: 我是直接调用的客户端,不用任何配置的

动态webservice调用接口并读取解析返回结果

  webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使用的接口.今天我们来详细讨论下如何动态调用以及读取解析返回结果 这里给大家带来的是动态webservice调用接口并读取解析返回结果的具体示例,非常的简单,注释也很详细,小伙伴们可以参考下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

cxf 调用webservice 报getOutputStream() has already been called for this response

问题描述 cxf 调用webservice 报getOutputStream() has already been called for this response 简单演示了下cxf,如下: @WebService public interface HelloWordService { String sayHello(@WebParam String name); } public class HelloWordServiceImpl implements HelloWordService {

axis调用webservice:返回值不正确

问题描述 axis调用webservice:返回值不正确 本人对webservice的调用不熟悉,求助各位大侠!多谢! WSDL的XML文件中定义的参数如下 name="zone" type="xsd:string" default="CM-ACCTSPID" name="Id" type="xsd:string" name="rowCount" type="xsd:decim

webservice xml格式-webservice接口调用如何指定xml格式返回集合是并列的关系而不是包含关系。

问题描述 webservice接口调用如何指定xml格式返回集合是并列的关系而不是包含关系. webservice客户端调用服务端,给的数据是这样的. protected DTFPTXSINPUT.NUMBER_IN numberin; public DTFPTXSINPUT.NUMBER_IN getNUMBERIN() { return numberin; } public void setNUMBERIN(DTFPTXSINPUT.NUMBER_IN value) { this.numbe

C#调用java开发的Webservice无返回值

问题描述 Webservice是用java开发的,用wsdl2java工具搭建,用到的是axis1.4版本.客户端是用C#开发的,IDE用的是VS2008.遇到的问题如下:用"添加Web引用"的方式,调用Webservice中一个String返回值的方法,返回值为空;用request的方式,拼接了soap报文调用,在getResponse的时候出现异常:"服务器内部错误(500)";服务器的tomcat控制台未显示任何异常;调用其他的Webservice接口,两种方