2013-02-24 12 views
10

Utworzono instancję mongodb w mongolabie Udostępniono mi identyfikator URI połączenia.łączenie monondbu utworzonego w mongolabie za pośrednictwem aplikacji java

mongodb://<dbuser>:<dbpassword>@ds041177.mongolab.com:41177/myclouddb 

Użyłem następujący kod java połączyć się od bazy danych

 Mongo m = new Mongo(); 
    com.mongodb.DBAddress dba=new DBAddress("mongodb://admin:[email protected]:41177/myclouddb"); 
     m.connect(dba); 

Ale to rzuca NumberFormatException

java.lang.NumberFormatException: For input string: "" 

Co robię źle?

Odpowiedz

20

To jest URI MongoDB.

Zamiast przesyłać go do DBAddress wystarczy przekazać go do MongoURI, a następnie przekazać do instancji Mongo.

String textUri = "mongodb://admin:[email protected]:41177/myclouddb"; 
MongoURI uri = new MongoURI(textUri); 
Mongo m = new Mongo(uri); 

Należy również rozważyć uaktualnienie do sterownika latest i przejście do klasy MongoClient jako klasa Mongo jest teraz przestarzała.

String textUri = "mongodb://admin:[email protected]:41177/myclouddb"; 
MongoClientURI uri = new MongoClientURI(textUri); 
MongoClient m = new MongoClient(uri); 
+0

dziękuję rob .. – user1946152

+0

istnieje jakikolwiek possibilitiesto ustawić dwa hosta z nazwą użytkownika i hasłem w MongoURI –

+0

powinien być w stanie dodać listę hosta/porty jak przecinek oddzielone listy: MongoDB: // Admin : [email protected]: 41177, ds041178.mongolab.com: 41177/myclouddb. Nie jestem pewien, czy wszystkie sterowniki obsługują ten format, ale jest to w specyfikacji: http://docs.mongodb.org/manual/reference/connection-string/ –

Powiązane problemy