服务启动时加载的servlet报错
我需要在tomcat启动之后不停的执行某些操作,所以写了三个servlet,都是在服务器启动的时候加载的,然后在servlet中开线程,自动的执行。但是出现一个问题,tomcat一启动,在servlet中连接数据库的时候,有时候会出现如下错误:
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://192.168.1.23; DatabaseName=RFIDPTLSM
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at net.superrfid.common.dataMaintain.thread.DataMaintain.run(DataMaintain.java:48)
at java.lang.Thread.run(Thread.java:619)
但是前两个servlet中连接数据库就不会出现这个问题,代码都是一样的,线程类中的run()方法如下:
public void run() {
this.xmlP();
Connection dbConn;
DataMaintainDao dao;
while (true) {
try {
dbConn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
dbConn.setAutoCommit(true);
dao = new DataMaintainDao();
dao.maintainRealtimeData(dbConn);
// 每8秒钟运行一次
Thread.sleep(8*1000);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
但是有时候就不会有上面的异常,很郁闷。最后我在servlet中开启线程之前先sleep()三四秒,这就没有问题了。不知道到底怎么回事儿。劳烦各位看看!