我有一个Java Web服务,代码如下:
@WebService
public class MyService {
@WebMethod
public String[] method1() {
String[] strArray = new String[2];
strArray[0] = "method1 array item 1";
strArray[1] = "method1 array item 2";
return strArray;
}
@WebMethod
public MyComplexType method2() {
return new MyComplexType();
}
}
method2()返回一个复杂类型,它包含一个字符串数组作为类成员(代码如下):
public class MyComplexType {
public String[] InternalArray;
public MyComplexType() {
InternalArray = new String[2];
InternalArray[0] = "complex type array item 1";
InternalArray[1] = "complex type array item 2";
}
}
,结果wsdl包含此成员的array_of_xsd_string,如。
element name =“InternalArray”nillable =“true” 类型= “IMPL:ArrayOf_xsd_string”
当我使用wsdl2java创建客户端代码时,service返回一个空的ArrayOf_xsd_string对象。
我也创建了C#客户端,webreference返回一个空字符串数组。
简单地说,我必须在复杂类型中返回一个字符串数组,但是服务返回一个空数组。