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类型。我该怎样取得里面的数据呢?这样调对不对?还有别的办法吗?

2个回答

这个是 ArrayOfString 的源码!相信你看了之后就知道咋遍历或者读内容了!

一般你用工具生成 客户端的时候 这些都生成好了的!

[code="java"]
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;
}

}
[/code]

ArrayOfString result = service.getWeateherByCity("北京");
if(result != null) {
List weathers = result.getString();
for(int i = 0; i < weathers.size(); i++) {
System.out.println(weathers.get(i));
}

[quote]java.lang.ClassCastException: services.wms.huike.com.ArrayOfString cannot be cast to com.huike.wms.services.ArrayOfString [/quote]

这个错应该是你 的 ArrayOfString 引入的类型不对!
自己检查下:引入:
com.huike.wms.services.ArrayOfString

[code="java"] [WebMethod]
public string HelloWorld() {
return "Hello !! this is lucky";
}

    [WebMethod] 
    public string[] testArray() 
    { 
        return new string[]{"1","2","3"}; 
    } [/code]

这个两个方法 返回值的类型不同! 可能不能按统一的方式处理!
[quote]ArrayOfString result = service.getWeateherByCity("北京");
if(result != null) {
List weathers = result.getString();
for(int i = 0; i < weathers.size(); i++) {
System.out.println(weathers.get(i));
} [/quote]

这个是肯定行的! 我本地跑了 好多遍了! 没问题!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问