2013-06-11 38 views
0

我写了一个简单的Java服务器。基本的想法是,单击按钮后,servlet会将一些数据加载到MongoDB中。MongoDB与Tomcat v7 Java服务器

但是,每当我尝试实际的东西加载到MongoDB的(在我的情况下,节约的集合),我收到以下错误:

com.mongodb.MongoException$Network: can't call something : /127.0.0.1:27017/ 
com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:295) 
com.mongodb.DBTCPConnector.call(DBTCPConnector.java:257) 
com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:310) 
com.mongodb.DB.command(DB.java:274) 
com.mongodb.DB.command(DB.java:256) 
com.mongodb.DB.command(DB.java:313) 
com.mongodb.DB.command(DB.java:211) 
com.mongodb.DB.createCollection(DB.java:170) 
servlets.ImportData.doPost(ImportData.java:60) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 

有谁知道这里的问题可能是什么?当我搜索这个问题时,我发现人们猜测从端口冲突到陈旧的连接到错误安装MongoDB的所有内容,所以在这个问题上得到一些清晰的内容是非常棒的。

如果有助于查看源代码,我很乐意分享它。

在此先感谢!

+1

David,似乎你的mongod实例没有运行。你能通过shell/CLI连接到mongo吗? –

+0

感谢您的快速回复,Miguel。看起来像在后台运行Mongod修复了这个问题。现在我得到一个新的错误,即“HTTP状态500 - '确定'不应该为空...”,但我会看看我是否可以弄清楚是什么。再次感谢,男士! –

回答

0

我发现我的mongod实例在执行命令时没有运行。

请务必在您使用服务器的所有时间在控制台中运行“mongod”。

我遇到的是没有指定MongoClient的主机和端口,以下列方式的第二个错误:

MongoClient mongo = new MongoClient(); 

相反,你可以这样做:

MongoClient mongo = new MongoClient("localhost", 27017); 

你能坚持到这你的servlet上下文并根据需要将它传递给其他servlet,而我在这里用new语句声明MongoClient mongo时,我建议将它保留为ContextListener的类变量。