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
}
}