Tomcat Web 应用程序仅在我在 /manager 页面中明确启动后才能工作

Posted

技术标签:

【中文标题】Tomcat Web 应用程序仅在我在 /manager 页面中明确启动后才能工作【英文标题】:Tomcat web application only works after I explicitly start it in the /manager page 【发布时间】:2013-05-05 16:00:40 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

    明确取消注册驱动程序:

    // Example: DriverManager.getDriver("jdbc:mysql://localhost:3306");
    java.sql.Driver mySqlDriver = DriverManager.getDriver("YOUR DRIVER");
    DriverManager.deregisterDriver(mySqlDriver);
    

    在 Tomcat 上使用 JDBC connection pool

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

【讨论】:

以上是关于Tomcat Web 应用程序仅在我在 /manager 页面中明确启动后才能工作的主要内容,如果未能解决你的问题,请参考以下文章

403 仅在我的机器上 - Angular 2 和 Tomcat 8.5

Apache tomcat 错误(没有来自 eclipse 或 xampp tomcat)

如何仅在 HTTPS 上从 .htaccess 设置 HSTS 标头 [关闭]

为啥在我的 web 应用程序中使用 Tomcat 时出现 Class NotFound Exception?

Proguard 仅在我的战争中混淆 /WEB-INF/classes/**/*.class 文件

在Tomcat上发布JNDI资源