2016-09-12 6 views
1

MongoDB Rest APIを使用しているときに私は以下のデータを取得しています。MongoDBで残りのAPIを使用しているときに、正確なデータが得られないのはなぜですか?

Cursor id=0, ns=test.products, query={ }, numIterated=1, addr=localhost/127.0.0.1:27017, readPreference=primary 

私はJSONデータを期待していますが、そのデータは取得できません。このため は私がメソッドを呼び出していますどこ

localhost:8080/API/rest/applicationInitiatorService/addContact 

尊敬する方法を次のコード

import javax.ws.rs.*;  
    @Path("/applicationInitiatorService/") 
    public class ApplicationInitiatorService { 
    @GET 
    @Path("/addContact") 
    @Produces("application/json") 
    public Response add_Contact() { 
     DBCursor cursor=null; 
     cursor=ApplicationInitiatorFactory.getApplicationinitiator().add_record(getcCollection); 
     String addrecord=cursor.toString(); 
     return Response.status(200).entity(addrecord).build(); 
    }} 

を検索し、見つけてください、次のURLを維持しています。

public DBCursor add_record(DBCollection db_collection) { 
    BasicDBObject document = new BasicDBObject(); 
    document.put("database", "Bosch_DB"); 
    document.put("table", "generating"); 
    BasicDBObject documentDetail = new BasicDBObject(); 
    documentDetail.put("total_phone_no", 100); 
    documentDetail.put("vps_index", "vps_index1"); 
    documentDetail.put("active", "true"); 
    document.put("detail", documentDetail); 
    db_collection.insert(document); 
    DBCursor cursorDoc = db_collection.find(); 
    while (cursorDoc.hasNext()) { 
    System.out.println(cursorDoc.next()); 
     } 
return cursorDoc; 
} 

答えて

0

このデータはあなたのREST APIを呼び出しています.APIコードをチェックして、何が起こっているのかを確認してください。私の推測では、あなたは間違った変数を返しています。

APIコールのコードを含めることはできますか?

UPDATE: 私はあなたが変更を示唆している:

String addrecord=cursor.toString(); 

へ:

String addrecord=cursor.next().toString(); 
+0

DBカーソルオブジェクトを返します – Santosh

+0

コードを提供できますか?検索結果が返されます。私はそれがあなたのコード – HoefMeistert

+0

ステータスが200であることを推測しています。しかし、私はCursor id = 0、ns = test.products、query = {}、numIterated = 1、addr = localhost/127.0.0.1:27017 、readPreference = primary – Santosh

0

私はおそらくカーソルまたはのtoStringとは何かを考えます。カーソルデータをコレクションに変換して返してもらえますか?

public DBCursor add_record(DBCollection db_collection) { 
    BasicDBObject document = new BasicDBObject(); 
    document.put("database", "Bosch_DB"); 
    document.put("table", "generating"); 
    BasicDBObject documentDetail = new BasicDBObject(); 
    documentDetail.put("total_phone_no", 100); 
    documentDetail.put("vps_index", "vps_index1"); 
    documentDetail.put("active", "true"); 
    document.put("detail", documentDetail); 
    db_collection.insert(document); 
    return db_collection.find(); 
} 

import javax.ws.rs.*;  
@Path("/applicationInitiatorService/") 
public class ApplicationInitiatorService { 
    @GET 
    @Path("/addContact") 
    @Produces("application/json") 
    public Response add_Contact() { 
     DBCursor cursor = ApplicationInitiatorFactory.getApplicationinitiator().add_record(getcCollection); 
     return Response.status(200).entity(cursor.toArray()).build(); 

    } 
} 

またはあなたがGsonライブラリを使用する必要があります。このため

return Response.status(200).entity(new Gson().toJson(cursor.toArray())).build();

としてreturn文を試すことができますのようなものを。

+0

java.lang.IllegalArgumentException:このExceptionを取得するカーソルアクセスメソッドを切り替えることはできません。 – Santosh

+0

@Santoshが私の答えを更新しました。それが動作するかどうか確認してください。あなたがcursor.toArray()の前にcursor.nextを実行していたために、カーソルアクセスエラーを切り替えることができません。 – Atul

+0

コンパイルの問題が返されると思います。db_collection.find(); – Santosh

関連する問題