我正在构建一个Web服务,其中包含一些执行特定工作的方法,这是Web表面方法之一:
@WebMethod
public DatingUserInfo[] GetAll(String gender);
这个方法应该返回一个DatingUserInfo
数组,这个方法的实现是:
@Override
public DatingUserInfo[] GetAll(String gender) {
DatingUserInfo[] ret_arr;
ArrayList<DatingUserInfo> usrs=new ArrayList<DatingUserInfo>();
//fill the list with objects of DatingUserInfo//
ret_arr= new DatingUserInfo[usrs.size()];
usrs.toArray(ret_arr);
return ret_arr;
}
在客户端运行WSimport工具以获取所需文件时,我在其中一个生成的文件中得到了这个文件:
@WebMethod(operationName = "GetAll")
@WebResult(targetNamespace = "")
@RequestWrapper(localName = "GetAll", targetNamespace = "http://datingsvr/", className = "client.GetAll")
@ResponseWrapper(localName = "GetAllResponse", targetNamespace = "http://datingsvr/", className = "client.GetAllResponse")
@Action(input = "http://datingsvr/DatingServer/GetAllRequest", output = "http://datingsvr/DatingServer/GetAllResponse")
public List<DatingUserInfo> getAll(
@WebParam(name = "arg0", targetNamespace = "")
String arg0);
}
返回的类型是List而不是DatingUserInfo [],是什么原因导致WSimport生成错误的代码?!
提前谢谢。答案 0 :(得分:0)
默认情况下,WSimport工具会自动将返回的数组替换为列表。