Jongo和泽西岛

时间:2013-07-04 05:34:59

标签: jongo

我的查询返回Iterable元素,现在我想以JSON格式将其返回给用户,但Jersey无法转换它。它说:

  

未找到Java类org.jongo.MongoIterator和Java类型java.lang.Iterable以及MIME媒体类型application / xml的消息正文编写器

    @GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Iterable<Complex> getISS(){
    DB db = ConnectionHelper.client.getDB("testdb");
    Jongo jongo = new Jongo(db);
    MongoCollection complex = jongo.getCollection("COMPLEX");
    Iterable<Complex> all = complex.find().as(Complex.class);       
    return all;
}

我是否需要将其转换为List类型或者还有其他有效的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用Guava

中的newArrayList方法
@GET
@Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
public Iterable<Complex> getISS(){
    DB db = ConnectionHelper.client.getDB("testdb");
    Jongo jongo = new Jongo(db);
    MongoCollection complex = jongo.getCollection("COMPLEX");
    Iterable<Complex> all = complex.find().as(Complex.class);

    return Lists.newArrayList(all);
}

或将可迭代复制到新列表中,有关详细信息,请参阅https://stackoverflow.com/a/10117051/122975

顺便说一下,每次处理新请求时都不应该实现Jongo。