【发布时间】:2011-12-02 17:34:26
【问题描述】:
我对 MongoDB 版本 2.0.1 有疑问。我已经在 Ubuntu 上安装了它 32位的机器。我可以通过命令连接到它 提示,但无法通过 Java 代码连接到它。相同的代码 曾经与旧的 MongoDB 版本一起工作。我得到以下 例外。
Caused by: com.mongodb.MongoInternalException: DBPort.findOne failed
at com.mongodb.DBPort.findOne(DBPort.java:153)
at com.mongodb.DBPort.runCommand(DBPort.java:159)
at com.mongodb.DBTCPConnector.testMaster(DBTCPConnector.java:369)
at com.mongodb.Mongo.<init>(Mongo.java:140)
at
com..bean.MongoCollectionPoolBean.init(MongoCollectionPoolBean.java:
42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:
1544)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1485)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1417)
... 24 more
Caused by: java.io.IOException: couldn't connect to
[domU-12-31-39-0B-26-01/67.265.65.132:27017]
bc:java.net.ConnectException: Connection timed out
at com.mongodb.DBPort._open(DBPort.java:205)
at com.mongodb.DBPort.go(DBPort.java:85)
at com.mongodb.DBPort.findOne(DBPort.java:145)
... 35 more
当我尝试在本地系统(Mac Lion 64位)它工作正常。当我在这里看到服务器日志时,我看到的是 我的本地系统:
[clientcursormon] 内存 (MB) res:14 virt:2434 mapped:0
在 Ubuntu 上(不工作)
[clientcursormon] 内存 (MB) res:14 virt:86 mapped:0
【问题讨论】:
-
您确定MongoDB服务器的IP地址(67.265.65.132)正确吗?您是否运行了阻止网络流量的防火墙?
-
它在本地主机上,是的,这是正确的
-
我不是 Java 人,但普遍的想法是驱动程序可能也需要更新?你能检查一下你当前的 MongoDB 包是否与你在服务器上运行的升级兼容吗?
-
如果在本地主机上,则使用 127.0.0.1 而不是其他 IP 地址;那么您可以通过网络适配器节省不必要的旅行。
标签: java mongodb mongo-java