4

我在 tomcat 中部署了这个 Web 应用程序。尽管在机器重新启动并且一切都加载后它不会自动启动。它仅在我转到管理器页面并从那里启动它或重新启动 tomcat 服务时才有效。

我收到错误启动侦听器和严重消息:

Web 应用程序 [web 应用程序] 注册了 JDBC 驱动程序 [net.sourceforge.jtds.jdbc.Driver] 但在 Web 应用程序停止时未能取消注册。为防止内存泄漏,已强制注销 JDBC 驱动程序。

有没有人遇到过同样类型的问题?我已经没有调试的想法了。

4

1 回答 1

4

在我看来,您有一个 JDBC 驱动程序会导致内存泄漏并使 Tomcat 抛出该错误。Tomcat 7 具有Memory Leak检测和预防机制,如果您的驱动程序在启动时已注册但在终止后未取消注册,则会向您发出警告。两个建议:

  1. 显式取消注册驱动程序:

    // Example: DriverManager.getDriver("jdbc:mysql://localhost:3306");
    java.sql.Driver mySqlDriver = DriverManager.getDriver("YOUR DRIVER");
    DriverManager.deregisterDriver(mySqlDriver);
    
  2. 在 Tomcat 上使用JDBC 连接池

我个人更喜欢connection pool. 另请查看有关您的 listenerStart 问题的Apache Tomcat 7: Error listenerStart msg 。

于 2013-05-10T22:52:40.937 回答