2013-07-04 31 views
0

我的查詢返回Iterable元素,現在我想以JSON格式將其返回給用戶,但Jersey無法將其轉換。它說:Jongo和Jersey

的Java類org.jongo.MongoIterator,和Java類型java.lang.Iterable和MIME媒體類型的應用程序/ 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類型還是有其他有效的方法來執行它?

回答

3

您可以從Guava

@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); 
} 

使用newArrayList方法或迭代複製到一個新的列表,請參閱https://stackoverflow.com/a/10117051/122975更多信息

BTW,你不應該實例化Jongo每次處理新請求。

+0

嗯,那不是有效的不是嗎? –