2

Spring Data を使用して mongodb に接続中に次のエラーが発生しました。

java.io.IOException: couldn't connect to [/127.0.0.1:27017] bc:java.net.ConnectException: Connection refused: connect
at com.mongodb.DBPort._open(DBPort.java:228)
at com.mongodb.DBPort.go(DBPort.java:112)
at com.mongodb.DBPort.call(DBPort.java:79)
at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:218)
at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:305)
at com.mongodb.DB.getCollectionNames(DB.java:284)
at org.springframework.data.mongodb.core.MongoTemplate$14.doInDB(

私の構成を見つけてください:

@Configuration
public class AppConfig {

public @Bean MongoOperations mongoTemplate(Mongo mongo) {
    MongoTemplate mongoTemplate = new MongoTemplate(mongo, "mydb");
    return mongoTemplate;
}

/*
 * Factory bean that creates the Mongo instance
 */
public @Bean MongoFactoryBean mongo() {
    MongoFactoryBean mongo = new MongoFactoryBean();
    mongo.setHost("10.6.120.180");
    mongo.setPort(27017);
    return mongo;
}

/*
 * Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes
 */
public @Bean PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
    return new PersistenceExceptionTranslationPostProcessor();
}

}

Mongo-context-test.xml

    <mongo:db-factory dbname="mydb"/>
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoDbFactory"/>
</bean>

Spring Data と MongoDB は初めてです。アドバイスをお願いします。なぜこのエラーが発生するのですか?

前もって感謝します。

4

2 に答える 2

2

AppConfig クラスが使用されていますか?

私のコメントで述べたように、受け取ったエラーは、プログラムがサーバー上の MongoDB に接続しようとしていることを127.0.0.1示していますが、投稿した AppConfig クラスは IP アドレスに接続したいことを明確に示しています10.6.120.180

これは、 Githubmongo.setHost("localhost")に投稿されたサンプル コードにあるAppConfig クラスを何らかの方法で取得した場合に発生する可能性があります。

更新: OP のコメントに基づいて、mongoTemplateinのクラス参照Mongo-context-test.xmlは Spring Framework のデフォルトMongoTemplateクラスを指していました。

SpringSource のドキュメントによると、 MongoTemplate の紹介では、Java を使用して MongoTemplate のインスタンスを作成および登録するか、Spring の XMLスキーマを使用してMongoTemplateを構成できます。<beans/>

スキーマの使用は、Java での実装よりも明らかに<beans/>優先されます。<beans/>スキーマを使用する場合は <mongo:mongo host="localhost" port="27017"/>、OP のコメントに記載されているように、ホストとポートの要件を指定するために使用する必要があります。

于 2012-09-24T14:26:38.157 に答える