如何返回一个arraylist作为对restful cxf webservice调用的响应

时间:2016-06-10 06:26:16

标签: java web-services rest arraylist cxf

我尝试使用restful cxf webservice调用从MongoDB中检索文档列表。但我面对

  

在Class ArrayList中找不到响应正文编写器。

我跟着this tutorial。在这里,他们将员工对象作为CxfRestServiceImpl类中的响应返回。所以他们使用了@XMLElement(name = 'employee')

但是现在我试图将来自MongoDB的文档列表作为CxfRestServiceImpl类中的响应返回。为了克服这个错误,我需要做些什么改变?

3 个答案:

答案 0 :(得分:2)

如果我理解你是对的,那么你的代码就会遇到这个例外。或者,你最好把你的List答案包装在其他课程中。

@XmlRootElement(name="DocumentList")
public class DocumentList {
    @XmlElement
    public List<Document> documentList;
}

答案 1 :(得分:2)

你可以像这样“包装”到数组

return Response.status(Response.Status.OK).entity(yourList.toArray(new YourObject[yourList.size()])).build();

其中您的列表是List<yourObject>ArrayList<yourObject>

答案 2 :(得分:0)

您可以返回服务中的对象列表。 JAXB将从ArrayList

进行转换
@GET
@Path("/employees")
public List<Employee> getEmployees()

确保该对象具有JAXB XmlRootElement批注。

@XmlRootElement(name="Employee")
public class Employee{
}