CXF-RS 能否返回接口集合



我定义了一个接口 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)

最新更新