oki*_*sad 3 java spring spring-data-mongodb spring-boot
我正在为我的 rest api 使用 spring boot,但我有关于 mongo 数据库的问题。当需要 mongo 操作的端点被触发时,应用程序有时会抛出 mongo socket 异常并且不执行以下代码。我将 socketkeepalive 的值赋值为 true,但它确实解决了我的问题。我怎样才能摆脱这个问题,你能给我提供合适的 spring boot mongo db 配置值吗?
顺便说一下,程序运行正常。但有时它会抛出这个异常。
谢谢
INFO org.mongodb.driver.cluster - Exception in monitor thread while connecting to server **.***.***.***:42015
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.connection.SocketStream.open(SocketStream.java:63)
at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:115)
at com.mongodb.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:127)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mongodb.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:57)
at com.mongodb.connection.SocketStream.open(SocketStream.java:58)
... 3 common frames omitted
Run Code Online (Sandbox Code Playgroud)
Spring Boot有一个叫做“自动配置”的特性。在这种情况下,一旦在类路径上检测到 Mongo 驱动程序,就会使用默认值激活MongoAutoConfiguration,该值指向localhost:27017。如果您不想要这种行为,您现在可以为MongoDB配置属性(请参阅http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-mongodb以获得有效的属性键)或禁用 MongoAutoConfiguration:
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
当 Mongo DB 未运行时,Spring Boot会抛出此异常。请确保Mongodb正在运行。启动 Mongo DB 后,它为我解决了。
您可以检查 mongoDB 是否正在运行 27017 是否正在运行。在您的终端中使用此代码
netstat -plntu
并请告诉我您的配置文件或属性文件。
| 归档时间: |
|
| 查看次数: |
6368 次 |
| 最近记录: |