2011-05-09 5 views
7

Je suis en train d'exécuter le code suivant:MongoDB problèmes de connexion java

public static void main(String args[]) throws UnknownHostException, MongoException{ 
     Mongo m = new Mongo("localhost", 27017); 
     DB db = m.getDB("test"); 


     Set<String> coll = db.getCollectionNames(); 
    } 

mais pour une raison quelconque, je reçois des problèmes de connexion:

bc: java.net.ConnectException: Connexion refusée: connectez-vous

EDIT: Nvm J'ai oublié de lancer la base de données en arrière-plan

+0

d'abord l'évidence: Votre mongo fonctionne-t-il? Est-ce qu'il écoute sur le port 27017? L'avez-vous testé avec mongo au moyen de la ligne de commande? –

Répondre

6

de toute évidence, assurez-vous que vous pouvez vous connecter à MongoDB sur le port « localhost » 27017. vous devriez être en mesure d'ouvrir le M ongoDB shell sans arguments et d'obtenir un retour rapide:

» mongo 
MongoDB shell version: 1.8.1 
connecting to: test 
> 

Si vous ne pouvez pas la réponse devrait être évidente: MongoDB ne fonctionne pas. Vous devez vous assurer que vous démarrez le processus du serveur MongoDB. Il y a quelques Quickstart Guides dans les documents MongoDB qui devraient vous guider vers le processus sur votre plate-forme de choix. Sinon, vous n'indiquez pas sur quelle plate-forme vous êtes, mais il y a un problème avec la manière dont Java résout certains noms d'hôtes comme "localhost" sur Mac OS X ... Il s'agit en fait d'un problème Java plutôt que d'un pilote Java MongoDB problème.

Lorsqu'on lui a demandé de résoudre « localhost » d'un nom d'hôte à un InetSocketAddr, Java pour Mac retournera généralement l'adresse IP pour interface externe de votre machine. Comme quelques installateurs pour Mac MongoDB comme Homebrew verrouiller l'adresse IP d'écoute à 127.0.0.1, cela peut provoquer la connexion à "localhost" pour échouer complètement sur Mac avec Java.