有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Tomcat web应用程序只有在我在/manager页面中显式启动后才能工作

我在tomcat中部署了这个web应用程序。尽管在机器重新启动并加载所有内容后,它不会自动启动。只有当我转到manager页面并从那里启动它或重新启动tomcat服务时,它才起作用

我得到了一个错误和严重的信息:

The web application [web application] registered the JDBC driver [net.sourceforge.jtds.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.

有没有人经历过类似的问题?我已经没有调试的想法了


共 (1) 个答案

  1. # 1 楼答案

    在我看来,您有一个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

    我个人更喜欢connection pool。还可以看看Apache Tomcat 7: Error listenerStart msg关于你的listenerStart问题