问题描述
我在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());
}
}
}
当我运行该应用程序时,一切正常,我想在断开数据库连接并向其显示一条消息时捕获错误。
我尝试使用“尝试捕获” ,但是它对我不起作用,并且出现以下错误。
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
请帮助我。
解决方法
使用try catch将代码包装为MongoTimeoutException。您可以在我的其他answer
中找到更多详细信息