我定义了一个接口 IUser 并希望返回一个 IUser 集合,如下所示:
@GET
@Path("getuserlist/{id}/")
@Produces("application/xml")
List<IUser> getUserList(@PathParam("id") String id);
当我在 cxf 2.7.6 下部署为休息服务时,出现以下错误:没有为响应类 ArrayList 找到消息正文编写器。谁能帮我解决这个问题?谢谢!
尝试将 ArrayList 包装在 POJO 中,例如:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SimplePOJO
{
private List<IUser> list;
public List<IUser> getList() {
return list;
}
public void setList(List<IUser> list) {
this.list = list;
}
}
然后更改您的服务以返回 POJO 类:
@GET
@Path("getuserlist/{id}/")
@Produces("application/xml")
SimplePOJO getUserList(@PathParam("id") String id);
在您的服务实现中,您所要做的就是实例化您的 SimplePOJO 类并通过调用 setList() 方法设置实现 IUser 接口的对象列表并返回 SimplePOJO 类。
您可能需要将以下内容添加到您的 IUser 接口和实现您的 IUser 的类中。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)