2013-06-04 2 views
0

MongoDb와 Spring MVC 응용 프로그램을 동일한 컴퓨터에서 실행하고 있습니다. 몇 가지 이유로 Spring MVC 애플리케이션을 통해 데이터에 액세스하려고 할 때 읽기 연산 오류가 발생합니다. 어떤 입력을 사전에읽기 연산 예외 읽기 MongoDB

<!-- 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> 

감사 : 여기

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 

내가 봄에 app.xml에있는 설정이다.

+0

당신은 MongoDB를가 실행되고 있는지 확인 할 수 있으며 해당 포트에 사용할 수 있음을 (그리고 방화벽은 아니라고 루프백 127.0.0.1을 사용하고 있지 않습니다.). 'mongo 192.168.1.179 '를 통해 셸을 사용하여 인스턴스에 연결해보십시오. – WiredPrairie

+0

은 27017의 기본 포트가 아니라 28017에서 mongodb를 실제로 실행하고 있습니까? 기본적으로 28017은 DB 포트가 아닌 http 포트입니다. –

답변

0

MongoDB 서버가 시작되는 일반적인 포트는 28017을 사용하는 곳의 27017입니다. 27017로 변경하여 시도해보십시오.

+0

예. 그거였다. 웹 콘솔 포트를 사용하고 있다는 것을 몰랐습니다. 감사! – Ramp

0

시도해보십시오. 당신은 다음과 같은 봄 템플릿, 단지 구성을 사용하는 경우

options.connectionsPerHost = 100; 
options.maxWaitTime = 2000; 
options.socketKeepAlive = true; 
options.threadsAllowedToBlockForConnectionMultiplier = 50; 

는 :

<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}"  
/>