java - 解决使用 Jetty 7 重新部署时的 PermGen 问题

标签 java maven jetty el permgen

经过几天的调试,我成功地在 Tomcat 6.0.32 上重新部署了一个大中型 Web 应用程序,没有任何 PermGen。泄漏。我看到了 PermGen填满后丢弃,类加载器被垃圾回收。

大喜过望后,我尝试在我们的开发环境中无泄漏地重新部署应用程序,该环境由 Maven 和 Jetty 插件组成。

不幸的是,我似乎遇到了服务器限制,如下面的屏幕截图所示

Yourkit snapshot http://img811.imageshack.us/img811/7320/jettyclassloaderbeanelr.png

Jetty 请求线程具有对 BeanElResolver 的强引用这反过来又强烈引用了我的网络应用程序中的多个类。

我没有找到关于如何刷新此信息的引用资料。

我怎样才能删除这个最后的 PermGen从我的应用程序泄漏?


更新:

我已经通过以下方法解决了这个问题,但没有成功:

  • 已更新到最新版本的 Jetty 插件(7.4.5 和 8.0.0.M3)
  • 使用了 CMS 收集器:-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

更新 2:

最佳答案

这是 EL 实现中的实际错误,已在最新的 Jetty 版本中解决。

7.5.0 版一旦发布,将包含此修复。

关于java - 解决使用 Jetty 7 重新部署时的 PermGen 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818082/

相关文章:

java - 在spring Controller 中维护不同URL之间重定向的数据

maven - 无法在Maven存储库中找到 Artifact

java - 使用 Java 9 使 Ropeytask 崩溃

java - 如何在 Jetty 中记录异常堆栈跟踪?

java - 如何在 map 中使用时间戳作为键

Java 8 流首先调用 forEach(...)

java - java构造函数有什么意义?

tomcat hbase jar 包含

java - 如何在 Maven 2 中下载软件依赖项?

java - 使用 Maven 和 Jetty 将数据从一个 JSP 文件发送到另一个 JSP 文件