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());
        }
    }
}

当我运行该应用程序时,一切正常,我想在断开数据库连接并向其显示一条消息时捕获错误
我尝试使用“尝试捕获” ,但是它对我不起作用,并且出现以下错误

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

中找到更多详细信息

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...