由WSimport工具生成的JAVA RMI错误返回类型

时间:2014-06-17 16:01:15

标签: java rmi rpc webmethod

我正在构建一个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生成错误的代码?!

提前谢谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,WSimport工具会自动将返回的数组替换为列表。