jsp - Web 应用程序停止时无法注销 JDBC

标签 jsp tomcat servlets jdbc

WARNING [http-nio-8181-exec-550] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc 
The web application [comparateur] registered the JDBC driver [com.mysql.jdbc.Driver] 
but failed to unregister it when the web application was stopped. 
To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

我用过这个类

package servlets;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Enumeration;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyContextListener implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("App shutdown ...");

System.out.println("Deregistering SQL-Drivers ...");
Enumeration<Driver> drivers = DriverManager.getDrivers();
while (drivers.hasMoreElements()) {
    Driver driver = drivers.nextElement();
    try {
        DriverManager.deregisterDriver(driver);
        System.out.println(driver.getClass().getName());
    } catch (SQLException e) {
        System.err.println("Error deregistering driver " +       
   driver.getClass().getName());
    }
 }
}

 @Override
 public void contextInitialized(ServletContextEvent arg0) {
 }
 }

以及我与 DB 的联系

private String dbName = "NameDB";
private String user = "root";
private String pass = "PWD";   
private String server = "localhost";

我有同样的概率但是有这个消息 信息 [http-nio-8181-exec-579]org.apache.catalina.core.ApplicationContext.log HTMLManager:列表:列出虚拟主机“localhost”的上下文

感谢任何帮助。

最佳答案

在我看来你的 ServletContextListener Tomcat 未选择实现。

如果你想要你的 ServletContextListener要由您的 Web 应用程序容器获取实现,您需要执行以下两项操作之一:

  • 添加 @WebListener 类的注释。
  • 将以下元素添加到您的 web.xml 文件中。此元素应该是根 <web-app> 的子元素元素。

    <listener>
        <listener-class>servlets.MyContextListener</listener-class>
    </listener>
    

关于jsp - Web 应用程序停止时无法注销 JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32553267/

相关文章:

javascript - 我们如何通过JSP scriptlet获取JavaScript数组

spring-boot - tomcat 中的 Spring boot WAR - 外部化 application.properties

java - 如何在 tomcat 8.5 中配置基本身份验证? HTTP 错误 401

tomcat - Tomcat 6 是否已准备好进行持续集成或如何让它工作?

jsp - Java EE 文件上传到服务器 : can't deploy web-app

html - 在 JSP 中搜索数据库

html - 保存页面时不显示文本区域字段

java - Eclipse 和 Struts 2 缺少 "s:text"的结束标记

java - struts-config.xml 中的 *.do 是什么

java - jsp、servlet、faces 和 beans?