Tomcat不提供重新加载单个JAR的任何机制.但是,整个上下文可以重新加载.
你只需要告诉Tomcat在context.xml中看你的JAR,像这样,
WEB-INF/web.xml
WEB-INF/lib/your.jar
我们在生产中这样做. Tomcat曾经有一些内存泄漏,但是我们还没有发现任何与Tomcat 5.5或更高版本有关的问题.
不知道是否还有必要.我们必须进行以下调用以避免热部署过程中的内存泄漏.
public void contextDestroyed(ServletContextEvent sce) {
// To fix the known memory leaks during re-deploy
ClassLoader contextClassLoader =
Thread.currentThread().getContextClassLoader();
LogFactory.release(contextClassLoader);
java.beans.Introspector.flushCaches();
...
}