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 .
}
我在 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 .
}