读取操作异常MongoDB

读取操作异常MongoDB,mongodb,spring-mvc,Mongodb,Spring Mvc,我在同一台机器上运行MongoDb和Spring MVC应用程序。由于某些原因,我在尝试通过SpringMVC应用程序访问数据时出现读取操作错误 Caused by: com.mongodb.MongoException$Network: Read operation to server /192.168.1.79:28017 failed on database utilDb at com.mongodb.DBTCPConnector.innerCall(DBTCPConnec

我在同一台机器上运行MongoDb和Spring MVC应用程序。由于某些原因,我在尝试通过SpringMVC应用程序访问数据时出现读取操作错误

Caused by: com.mongodb.MongoException$Network: Read operation to server /192.168.1.79:28017 failed on database utilDb
        at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253)
        at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
        at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
        at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
        at com.mongodb.DB.getCollectionNames(DB.java:399)
        at com.mongodb.DB.collectionExists(DB.java:441)
        at org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:438)
        at org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:436)
        at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:372)
        ... 37 more
Caused by: java.io.EOFException
        at org.bson.io.Bits.readFully(Bits.java:48)
        at org.bson.io.Bits.readFully(Bits.java:33)
        at org.bson.io.Bits.readFully(Bits.java:28)
        at com.mongodb.Response.<init>(Response.java:40)
        at com.mongodb.DBPort.go(DBPort.java:142)
        at com.mongodb.DBPort.call(DBPort.java:92)
        at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:244)
        ... 45 more
原因:com.mongodb.MongoException$Network:对服务器的读取操作/192.168.1.79:28017在数据库utilDb上失败
位于com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253)
在com.mongodb.DBTCPConnector.call上(DBTCPConnector.java:216)
在com.mongodb.DBApiLayer$MyCollection.\u查找(DBApiLayer.java:288)
在com.mongodb.DBApiLayer$MyCollection上找到(DBApiLayer.java:273)
位于com.mongodb.DB.getCollectionNames(DB.java:399)
位于com.mongodb.DB.collectionExists(DB.java:441)
位于org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:438)
位于org.springframework.data.mongodb.core.MongoTemplate$5.doInDB(MongoTemplate.java:436)
位于org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:372)
... 37多
原因:java.io.EOFException
阅读org.bson.io.Bits.readfull(Bits.java:48)
位于org.bson.io.Bits.readFully(Bits.java:33)
位于org.bson.io.Bits.readfull(Bits.java:28)
位于com.mongodb.Response(Response.java:40)
位于com.mongodb.DBPort.go(DBPort.java:142)
在com.mongodb.DBPort.call上(DBPort.java:92)
位于com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:244)
... 还有45个
以下是我在Spring中的app.xml配置:

    <!-- Mongo DB Conf -->
<bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
    <property name="host" value="192.168.1.79"></property>
    <property name="port" value="28017"></property>
</bean>

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongo" ref="mongo"></constructor-arg>
    <constructor-arg name="databaseName" value="utilDb"></constructor-arg>
</bean>


提前感谢您的输入。

MongoDB服务器通常启动的端口是27017,您使用的是28017。尝试将其更改为27017,看看是否有帮助。

试试这个

options.connectionsPerHost = 100;
options.maxWaitTime = 2000;
options.socketKeepAlive = true;
options.threadsAllowedToBlockForConnectionMultiplier = 50;
如果使用spring模板,只需按如下方式配置:

<mongo:mongo host="${mongodb.server}" port="${mongodb.port}">
    <mongo:options  
      connections-per-host="${mongo.connectionsPerHost}"  
      threads-allowed-to-block-for-connection-    multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"  
         connect-timeout="${mongo.connectTimeout}"  
         max-wait-time="${mongo.maxWaitTime}"  
         auto-connect-retry="${mongo.autoConnectRetry}"  
         socket-keep-alive="${mongo.socketKeepAlive}"  
         socket-timeout="${mongo.socketTimeout}"     
/>


您能否确认MongoDB正在运行并且在该端口上可用(并且您的防火墙没有阻止它?您没有使用环回127.0.0.1)。尝试通过“mongo 192.168.1.179”通过shell连接到实例。您是否真的在28017上运行mongodb,而不是默认端口27017?默认情况下,28017是http端口,而不是DB port.Yep。就这样。没有意识到我正在使用web控制台端口。谢谢