Java Tomcat热部署,JDBC驱动程序无法注销

Java Tomcat热部署,JDBC驱动程序无法注销,java,tomcat,jdbc,Java,Tomcat,Jdbc,更新文件并将其热部署到Tomcat服务器后,我出现异常。 有人知道怎么了吗 SEVERE: The web application [/app] registered the JDBC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibl

更新文件并将其热部署到
Tomcat
服务器后,我出现异常。
有人知道怎么了吗

SEVERE: The web application [/app] registered the JDBC driver [org.postgresql.Driver]  
but failed to unregister it when the web application was stopped.
To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
环境


找到正确的JDBC驱动程序jar并下载到WEB-INF lib文件夹。

这条消息的意思是Tomcat已经采取措施纠正由于未注销JDBC驱动程序而导致的泄漏

如果您不确定如何在ServletContextListener中注销JDBC驱动程序,可以尝试以下操作:

Enumeration<java .sql.Driver> drivers = java.sql.DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
    java.sql.Driver driver = drivers.nextElement();
    try {
       java.sql.DriverManager.deregisterDriver(driver);
    } catch (Exception e) {
        //log exception or ignore
    }
}
Enumeration drivers=java.sql.DriverManager.getDrivers();
while(drivers.hasMoreElements()){
java.sql.Driver-Driver=drivers.nextElement();
试一试{
java.sql.DriverManager.deregisterDriver(驱动程序);
}捕获(例外e){
//日志异常或忽略
}
}

可能重复读过这篇文章,它为您提供了有关此问题的正确想法。您不应该在应用程序中部署JDBC驱动程序。看见
Enumeration<java .sql.Driver> drivers = java.sql.DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
    java.sql.Driver driver = drivers.nextElement();
    try {
       java.sql.DriverManager.deregisterDriver(driver);
    } catch (Exception e) {
        //log exception or ignore
    }
}