tomcat下报错误
tomcat下报错误严重: The web application [/login] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
连接不到数据库哦
别的程序怎么都可以连接到数据库,之前写的程序都可以连接到数据库,报错之后写的都连接不到。包都导入好了,程序也没有错误。测试了好久,用request可以接受到输入的用户名和密码,但就是连接不到数据库,数据库连接也没有错,都是拷贝过去的。 --------------------编程问答-------------------- “failed to unregister it when the web application was stopped”
——在应用服务停止时,注销JDBC驱动失败。
感觉像是动态调试或动态发布次数多了,连接池注册出问题了。。。 --------------------编程问答-------------------- 有什么解决的方案吗? 我从新装了,换了版本tomcat都不行,出现问题之前的项目都可以成功,但从出现问题之后的项目运行都不成功,都连接不到数据库,页面可以显示,就是出现那个问题,难道tomcat有记忆功能,只记得以前的人的名字,我用后面的页面拷贝前面的程序运行的时候页面可以显示,但还是连接不到数据库,请问是什么问题。 --------------------编程问答-------------------- 估计是在服务启动到一半你就强制结束了,建议你重启下电脑,在看看连接是不是有问题。 --------------------编程问答-------------------- 不是的,这些不是问题,都好几天都是这样的 --------------------编程问答-------------------- 重新写下这块吧 应该是没找到 或者让别人看下帮你 --------------------编程问答-------------------- 你把你的错误粘到google里你就知道怎么回事了,jar包冲突,调什么也没用。 --------------------编程问答-------------------- 这种问题就是tomcat内存泄露和你没有什么关系
有两种解决方案:
1.在你的servlet上下文侦听contextDestroyed()方法,手动注销的驱动程序:
// This manually deregisters JDBC driver, which prevents Tomcat 7 from complaining about memory leaks wrto this class
Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
Driver driver = drivers.nextElement();
try {
DriverManager.deregisterDriver(driver);
LOG.log(Level.INFO, String.format("deregistering jdbc driver: %s", driver));
} catch (SQLException e) {
LOG.log(Level.SEVERE, String.format("Error deregistering driver %s", driver), e);
}
}
第二种办法因为从版本6.0.24,Tomcat的有内存泄漏检测功能,所以你换个6.0.24的版本 --------------------编程问答-------------------- 应该还是驱动问题。。换一个。。
补充:Java , Web 开发