Tomcat热部署,JDBC驱动注销失败[重复]

Posted

技术标签:

【中文标题】Tomcat热部署,JDBC驱动注销失败[重复]【英文标题】:Tomcat hot deployment, JDBC driver failed to unregister [duplicate] 【发布时间】:2014-06-26 01:17:43 【问题描述】:

更新文件并将其热部署到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.

环境

     - Tomcat 6 or 7 (the same error)
     - Eclipse Helios
     - JDK 1.7.0_55 with "Default VM parameters":
       -Xms256M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M

【问题讨论】:

可能重复***.com/questions/3320400/… 阅读这个它给了你关于这个问题的正确想法。 http://***.com/questions/3320400/to-prevent-a-memory-leak-the-jdbc-driver-has-been-forcibly-unregistered 【参考方案1】:

消息的意思是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
    

【讨论】:

【参考方案2】:

找到正确的 JDBC Driver jar 并下载到 WEB-INF lib 文件夹。

【讨论】:

您不应将 JDBC 驱动程序与应用程序一起部署。见***.com/questions/3320400/…***.com/questions/19189312/…***.com/questions/24850091/…

以上是关于Tomcat热部署,JDBC驱动注销失败[重复]的主要内容,如果未能解决你的问题,请参考以下文章

四:Tomcat热部署和热加载

死磕Tomcat系列——Tomcat如何做到热加载和热部署的

Tomcat热部署与热加载!

Day690.Tomcat如何实现热部署和热加载 -深入拆解 Tomcat & Jetty

IntelliJ IDEA 怎么热部署,每次修改java文件就得重启tomcat

Tomcat热部署