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如何做到热加载和热部署的
Day690.Tomcat如何实现热部署和热加载 -深入拆解 Tomcat & Jetty