开发者

Problem with mongo-java-driver on MacOSX

I can't connect to MongoDB from Groovy script.

Env:

trnls-mbpro:test trnl$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.6.5
BuildVersion:   10H574
trnls-mbpro:test trnl$ java -version
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03-307, mixed mode)
trnls-mbpro:test trnl$ groovy -version
Groovy Version: 1.7.5 JVM: 1.6.0_22
trnls-mbpro:test trnl$ mongod -version
db version v1.6.4, pdfile version 4.5
Sun Dec 12 03:34:32 git version: 4f5c02f8d92ff213b71b88f5eb643b7f62b50abc
trnls-mbpro:test trnl$ 
trnls-mbpro:env trnl$ mongod -noauth -vvv

Script test.groovy:

Mongo m = new Mongo("localhost", 27107);
DB db = m.getDB("test");

BasicDBObject info = new BasicDBObject();

info.put("x", 203);
info.put("y", 102);

DBCollection collection = db.getCollection('user');

collection.insert(info);

Results:

trnls-mbpro:test trnl$ groovy -cp mongo-2.1.jar test.groovy 
Caught: com.mongodb.MongoException$Network: can't say something
    at test.run(test.groovy:16)
trnls-mbpro:test trnl$ groovy -cp mongo-2.2.jar test.groovy 
Dec 12, 2010 3:30:24 AM com.mongodb.DBTCPConnector$MyPort error
SEVERE: MyPort.error called
java.io.IOException: couldn't connect to [trnls-mbpro.local/192.168.1.3:27107] bc:java.net.ConnectException: Connection refused
    at com.mongodb.DBPort._open(DBPort.java:172)
    at com.mongodb.DBPort.go(DBPort.java:79)
    at com.mongodb.DBPort.say(DBPort.java:60)
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:151)
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:154)
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:110)
    at com.mongodb.DBCollection.insert(DBCollection.java:73)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.Delegating开发者_如何学CMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:188)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
    at test.run(test.groovy:16)
    at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:264)
    at groovy.lang.GroovyShell.run(GroovyShell.java:227)
    at groovy.lang.GroovyShell.run(GroovyShell.java:157)
    at groovy.ui.GroovyMain.processOnce(GroovyMain.java:496)
    at groovy.ui.GroovyMain.run(GroovyMain.java:311)
    at groovy.ui.GroovyMain.process(GroovyMain.java:297)
    at groovy.ui.GroovyMain.processArgs(GroovyMain.java:112)
    at groovy.ui.GroovyMain.main(GroovyMain.java:93)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130)
Caught: com.mongodb.MongoException$Network: can't say something
    at test.run(test.groovy:16)
trnls-mbpro:test trnl$ groovy -cp mongo-2.3.jar test.groovy 
Caught: com.mongodb.MongoInternalException: DBPort.findOne failed
    at test.run(test.groovy:6)
trnls-mbpro:test trnl$ 

Any help is appreciated.

-vova


The default port for MongoDB is 27017. In the documentation 27107.


I'm neither an OSX nor Groovy user, but to me it looks like your localhost is being resolved a bit funny. I'd think that localhost should resolve to 127.0.0.1 and not 198.168.1.3.

Could it be that you have something strange in your /etc/hosts that causes this?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜