1.问题
1.我的tomcat的版本为8.5.56 ,jdk版本为1.8, 数据源用的是Druid,使用的SSM框架搭建的web项目。
报错下:
2.解决方法:
1.手动写一个监听器
注:由于原文博客内容.shutdown();方法过期,我查看原类此方法继承了checkedShutdown(); 如果不改会启动警告
import com.mysql.jdbc.AbandonedConnectionCleanupThread;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.sql.DriverManager;
/**
* 解决web应用程序注册了JDBC驱动程序
* 手动配置一个监听器
*/
public class MyContextListener implements ServletContextListener {
/**
* 实现其中的初始化函数,当有事件发生时即触发
* @param sce
*/
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("webService start");
}
/**
*
* 实现其中的销毁函数
* @param sce
*/
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("webService stop");
try {
while (DriverManager.getDrivers().hasMoreElements()){
DriverManager.deregisterDriver(DriverManager.getDrivers().nextElement());
}
System.out.println("jdbc Driver close");
// 由于原文博客内容.shutdown();方法过期,我查看原类此方法继承了checkedShutdown(); 如果不改会启动警告
AbandonedConnectionCleanupThread.checkedShutdown();
System.out.println("clean thread success");
}
catch (Exception e){
e.printStackTrace();
}
}
}
2.在web.xml中注册监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>