1

我定义了一个接口 IUser 并希望返回一个 IUser 集合,如下所示:
@GET @Path("getuserlist/{id}/") @Produces("application/xml") List<IUser> getUserList(@PathParam("id") String id);

当我在 cxf 2.7.6 下部署为休息服务时,出现以下错误:没有为响应类 ArrayList 找到消息正文编写器。谁能帮我解决这个问题?谢谢!

4

1 回答 1

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 接口的对象列表并返回 SimplePOJO 类。

您可能需要将以下内容添加到您的 IUser 接口和实现您的 IUser 的类中。

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
于 2013-10-25T19:20:14.853 回答