【发布时间】:2012-06-07 14:45:12
【问题描述】:
在重新加载 JSP 时,类重新加载在 Tomcat 中是如何工作的(我说的是内部架构)?
我知道每个 JSP 都被编译成一个 Java 类。但是考虑到类加载器不允许卸载类并且不会收集太多垃圾,类加载器(每个 Web 应用程序是唯一的)如何重新加载这些生成的类?
【问题讨论】:
-
我不同意“不收集太多垃圾”,因为 Tomcat 以在几次热重新部署后内存不足而闻名。
-
是的,@maksimov,你是对的。也许我还应该添加一个问题来询问 Tomcat 降低内存不足错误概率的策略是什么。
-
Tomcat 的一些信息。很高兴知道他们正在使用 ECJ 增量编译器进行 JSP 编译。
-
@maksimov Tomcat 在几次热部署后内存不足并不为人所知。取而代之的是,许多 Web 应用程序编写得很糟糕,并且其中很多都在 Tomcat 实例上运行。一个正确编写的 Web 应用程序可以重新部署数百次,而无需重新启动 Tomcat,也不会耗尽内存。
-
@ChristopherSchultz 我不会争辩,因为它可能只通过 Eclipse 运行——根据我的经验和其他人的经验(谷歌在这里提供帮助)。我知道这很可能是由于不同的执行过程和方法造成的,但问题仍然存在。
标签: java tomcat classloader dynamic-class-loaders