MongoDB ServletContextListener-contextInitialized 中的连接 Class 未加载

MongoDB Connection Class in ServletContextListener-contextInitialized is not loading

我在 Web 项目中使用 Mongodb 作为后端数据库,我试图在 contextInitialized() 函数中连接 MongoDB,但 tomcat 服务器不是 starting.But 当我打印一些值或做一些简单的事情而不是在该函数中加载 class 它工作 fine.I 无法跟踪什么是 happening.The 代码

@Override
    public void contextInitialized(ServletContextEvent contextEvent) {
        MongoDBClass.INSTANCE.getSomeDB().getCollection("UserDB");
        System.out.println("Context Created");//This is working
        context = contextEvent.getServletContext();
        context.getServerInfo();
        MongoDBClass.INSTANCE.getSomeDB().getCollection("UserDB");//Server loading and unable to start .
        }

MongoDB类如下

public enum MongoDBClass {
    INSTANCE;
    private static final String MONGO_DB_HOST = "hostURL";
    private Mongo mongoObject;
    private DB someDB;
    String DB_NAME = null;
    MongoClientOptions options = null;

    MongoDBClass() {

        options = MongoClientOptions.builder().connectionsPerHost(100)
    .readPreference(ReadPreference.secondaryPreferred()).build();
    mongoObject = new MongoClient(new ServerAddress(MONGO_DB_HOST,27001),options);
         someDB = mongoObject.getDB(Nutans_Mongo.getNameOFDB());
}

请帮帮我 谢谢 薇琪

您的代码中的问题是 MongoDBClass 未初始化,因为您获取的数据库名称未在 tomcat 服务器启动期间设置 `` 首先设置为 @Override

public void contextInitialized(ServletContextEvent contextEvent) {
    Nutans_Mongo.setNameOFDB("someDBNAME"); //then intialize MongoDBCLass
    MongoDBClass.INSTANCE.getSomeDB().getCollection("UserDB");
    System.out.println("Context Created");//This is working
    context = contextEvent.getServletContext();
    context.getServerInfo();
    MongoDBClass.INSTANCE.getSomeDB().getCollection("UserDB");//Server loading and unable to start .
    }