java - Spring boot检测位于另一个maven模块中的mongodb连接错误(MongoSocketOpenException)
问题描述
我在java中有一个名为:“lydsam”的项目。
第一个模块称为:“bd”,它是我与数据库的连接。
@Configuration
public class ConnectionBD {
@Bean
public MongoDatabaseFactory mongoDatabaseFactory(){
return new SimpleMongoClientDatabaseFactory("mongodb://localhost:27017/lydsam");
}
@Bean
public MongoTemplate mongoTemplate() {
try{
return new MongoTemplate(mongoDatabaseFactory());
}catch(Exception e){
System.out.println("offline with mongodb");
System.out.println(e.getMessage());
return null;
}
}
}
我还有另一个模块叫做:“销售”
@SpringBootApplication(scanBasePackages = { "org.lydsam.sales",
"org.lydsam.bd" })
public class Sales_aplicacion {
public static void main(String[] args) {
try {
SpringApplication.run(Sales_aplicacion.class, args);
} catch (Exception e) {
System.out.println("Error executing in application 'Sales': " + e.getMessage());
}
}
}
运行应用程序时一切正常,我想在断开数据库连接时捕获错误,然后将其显示到控制台并显示一条消息。
我尝试使用“try catch”,但它对我不起作用,我收到以下错误。
com.mongodb.MongoSocketOpenException: Exception opening socket
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:70) ~[mongodb-driver-core-4.0.3.jar:na]
at com.mongodb.internal.connection.InternalStreamConnection.open(InternalStreamConnection.java:127) ~[mongodb-driver-core-4.0.3.jar:na]
at com.mongodb.internal.connection.DefaultServerMonitor$ServerMonitorRunnable.run(DefaultServerMonitor.java:117) ~[mongodb-driver-core-4.0.3.jar:na]
at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.net.ConnectException: Connection refused: no further information
at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[na:na]
at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:579) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:549) ~[na:na]
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:597) ~[na:na]
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:339) ~[na:na]
at java.base/java.net.Socket.connect(Socket.java:603) ~[na:na]
at com.mongodb.internal.connection.SocketStreamHelper.initialize(SocketStreamHelper.java:63) ~[mongodb-driver-core-4.0.3.jar:na]
at com.mongodb.internal.connection.SocketStream.initializeSocket(SocketStream.java:79) ~[mongodb-driver-core-4.0.3.jar:na]
at com.mongodb.internal.connection.SocketStream.open(SocketStream.java:65) ~[mongodb-driver-core-4.0.3.jar:na]
... 3 common frames omitted
请我需要帮助。
解决方案
使用 MongoTimeoutException 的 try catch 包装您的代码。您可以在我的其他答案中找到更多详细信息
推荐阅读
- flutter - Flutter 中有没有办法只允许扩展动态生成的 ListView 的一个 ExpansionTile?
- docker - Docker cli 随机挂起几分钟
- leaflet - 传单,使用 geoJson 添加 fitbounds
- postgresql - 使用 JDBC 和 Postgres 将未知数量的参数传递给 IN 子句
- php - post_update 钩子中当前帖子的 ACF update_field
- python - Python mysql 连接器隐式将字符串转换为整数
- ios - 从多个单元格中分离并不能按应有的方式工作
- python - python pandas - 使用单个字段名掩码过滤多个数据帧
- reactjs - 在 reactjs 中进行服务器端渲染的最佳方法
- angular - 使用 ngIf 时 mat-paginator 不显示数据