我定义了一个接口IUser,并希望返回一个IUser集合,如下所示:
@GET
@Path("getuserlist/{id}/")
@Produces("application/xml")
List<IUser> getUserList(@PathParam("id") String id);
当我在cxf 2.7.6下部署作为休息服务时,出现以下错误: 没有为响应类ArrayList找到消息正文编写器。 谁能帮我解决这个问题?谢谢!
答案 0 :(得分:0)
尝试将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接口的对象List并返回SimplePOJO类。
您可能需要将以下内容添加到IUser界面以及实现IUser的类中。
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)