mongodb - Spring数据MongoDb抛出错误连接被拒绝

标签 mongodb spring-data-mongodb

使用 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 的新手。请指教,为什么我会收到此错误?

提前致谢。

最佳答案

您确定正在使用您的 AppConfig 类吗?

正如我的评论中提到的,您收到的错误表明您的程序正在尝试连接到服务器 127.0.0.1 上的 MongoDB而您发布的 AppConfig 类清楚地表明您想要连接到 IP 地址 10.6.120.180 .

如果您以某种方式获取包含 mongo.setHost("localhost") 的 AppConfig 类,则可能会发生这种情况。这是发布在 Github 上的示例代码.

更新:根据OP的评论,mongoTemplate的类引用在Mongo-context-test.xml指向 Spring 框架的默认值 MongoTemplate类。

根据SpringSource文档Introduction to MongoTemplate使用可以使用 Java 创建和注册 MongoTemplate 实例使用 Spring 的 XML 配置 MongoTemplate <beans/>架构。

显然使用<beans/>模式优先于 Java 中的实现。如果您使用<beans/> schema 那么你需要使用 <mongo:mongo host="localhost" port="27017"/>指定您的主机和端口要求,如 OP 在其评论中所述。

关于mongodb - Spring数据MongoDb抛出错误连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12565910/

相关文章:

ruby-on-rails - Mongoid has_many/belongs_to 有 'undefined method' 错误

MongoDB聚合组_id按不同字段

node.js - Raspberry Pi 2 上的 MongoDb 性能

javascript - 尝试从 Angular 将数据发送到 mongoDB

spring - 在将它们添加到 MongoDB 之前,如何在 Spring Data 中处理插入请求?

java - spring mvc mongodb 中请求的资源()不可用

mongodb - 如何更新 mongodb 中的文档以获得性能?

mongodb - Grails Controller不会保留对象

Spring 的 MappingMongoConverter 文档

mongodb - 如何使用 XML 中的 spring-data-mongodb 启用 mongo 连接池监控?