【发布时间】:2014-06-17 16:01:15
【问题描述】:
我正在构建一个 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 生成错误的代码?!
提前致谢。
【问题讨论】: