【问题标题】:Tomcat memory leaksTomcat 内存泄漏
【发布时间】:2014-12-25 11:23:05
【问题描述】:

我发现这是 Tomcat 上的一个众所周知的问题,所以我正在尝试在我的服务器上解决它。

在我的 Tomcat 上部署/取消部署 war 文件我经常收到此警报检查内存泄漏:

The following web applications were stopped (reloaded, undeployed), but their
classes from previous runs are still loaded in memory, thus causing a memory
leak (use a profiler to confirm):
/GEKKO
/GEKKO
/GEKKO
/LinkPlatform

这个答案https://stackoverflow.com/a/4565522/1061499 建议:

确保您的 Web 应用程序不使用 Web 容器共享库中的任何 Java 类。如果您有任何共享库,请确保这些库中的对象没有强引用

这是什么意思?我在我的 Eclipse 项目中使用 Maven,并且所有依赖项都会自动加载。但我必须在项目构建路径(服务器运行时)中手动添加 Tomcat 库。这是问题吗? Tomcat jars 是“共享库”吗?

【问题讨论】:

    标签: java eclipse tomcat memory-leaks


    【解决方案1】:

    如果您需要 Tomcat 在运行时提供的 jars 进行编译,但希望 Tomcat 容器在运行时提供它们,则其范围应为 provided,例如

      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>3.0.1</version>
          <scope>provided</scope>
      </dependency>
    

    (版本只是我扔在那里的东西......使用合适的东西)。

    【讨论】:

      猜你喜欢
      • 2015-12-27
      • 1970-01-01
      • 2012-08-20
      • 2012-08-06
      • 2013-07-29
      • 2015-06-04
      • 2014-04-03
      • 2015-12-21
      • 2013-09-21
      相关资源
      最近更新 更多