java - Spring Data MongoDB - java.net.SocketException : Connection reset

标签 java mongodb spring-data spring-data-mongodb nosql

当我尝试使用 Spring Data MongoDB 在 MongoDB 上保留数据时,出现如标题所示的错误。

这是我的配置:

<!-- Mongo Configuration -->
    <mongo:repositories base-package="com.tk.detective" />

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongoDbFactory" />
    </bean>

    <!-- local config -->
    <mongo:db-factory id="mongoDbFactory" dbname="detective" host="dbserver" port="27017" mongo-ref="mongoRef"/>

    <mongo:mongo id="mongoRef" host="dbserver" port="27017">
        <mongo:options connections-per-host="100" threads-allowed-to-block-for-connection-multiplier="50" connect-timeout="1000" max-wait-time="2500"
                       auto-connect-retry="true" socket-keep-alive="true" socket-timeout="15000" slave-ok="true" />
    </mongo:mongo>

当我尝试保存任何对象时出现错误:

mongoTemplate.save(object);

完整错误堆栈跟踪:

Caused by: com.mongodb.MongoException$Network: Write operation to server dbserver/xxx.xx.xx.xx:27017 failed on database detective

at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:153) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:115) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:248) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:204) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBCollection.insert(DBCollection.java:148) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBCollection.insert(DBCollection.java:91) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBCollection.save(DBCollection.java:810) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBCollection.save(DBCollection.java:786) ~[mongo-java-driver-2.11.2.jar:na]
    at org.springframework.data.mongodb.core.MongoTemplate$10.doInCollection(MongoTemplate.java:884) ~[spring-data-mongodb-1.2.3.RELEASE.jar:na]
    at org.springframework.data.mongodb.core.MongoTemplate.execute(MongoTemplate.java:388) ~[spring-data-mongodb-1.2.3.RELEASE.jar:na]
    ... 53 common frames omitted
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) ~[na:1.7.0_07]
    at java.net.SocketOutputStream.write(SocketOutputStream.java:153) ~[na:1.7.0_07]
    at org.bson.io.PoolOutputBuffer.pipe(PoolOutputBuffer.java:129) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.OutMessage.pipe(OutMessage.java:236) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBPort.go(DBPort.java:133) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBPort.go(DBPort.java:102) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBPort.say(DBPort.java:97) ~[mongo-java-driver-2.11.2.jar:na]
    at com.mongodb.DBTCPConnector.say(DBTCPConnector.java:140) ~[mongo-java-driver-2.11.2.jar:na]
    ... 62 common frames omitted

最佳答案

dbserver 是您真实的主机名吗?

防火墙是否阻止了它?

你能从命令行访问mongodb吗?从 GUI 客户端?

参见:What's causing my java.net.SocketException: Connection reset?

关于java - Spring Data MongoDB - java.net.SocketException : Connection reset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18398513/

相关文章:

sql-server - SQL Server 和 Mongo 可以一起使用吗?

java - 从 MATLAB 外部与 Activity MATLAB session 进行简单交互

java - JUnit5:指定多个@Nested 类的执行顺序

java - 如何衡量 C++ 或 Java 文件的复杂性?

java.lang.String 无法转换为 main.java.example.Person

java - 在多模块 Spring Boot 项目中使用属性

java - Spring:覆盖 CrudRepository 中的保存方法

java - 使用 Maven 运行 mvn package 找不到目标 'single'

node.js - 处理从 nodejs 与 mongo db 的连接丢失

node.js - 如何将 'resolve' MongoDB 对象转换为 Nodejs 中的特定 JSON 结构?