gpt4 book ai didi

java - Tomcat:热部署新 jar

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:52 25 4
gpt4 key购买 nike

能否在 Tomcat 5 上热部署 JAR 文件?这个想法是为了避免重新启动 Tomcat,并且仍然能够(通过反射)从新添加的 JAR 中加载一些类。可以吗?如何?生产系统不可取吗?谢谢

编辑:我的方案需要添加事先不知道名称的新 JAR 文件。服务器可以“监视”JAR 目录而不是特定 JAR 吗?

最佳答案

Tomcat 不提供任何机制来重新加载单个 JAR。但是,可以重新加载整个上下文。

你只需要告诉 Tomcat 在 context.xml 中监视你的 JAR,就像这样,

<?xml version="1.0" encoding="UTF-8"?>
<Context override="true" swallowOutput="true" useNaming="false">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/lib/your.jar</WatchedResource>
<Manager pathname=""/>
</Context>

我们在生产中这样做。 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();
...
}

关于java - Tomcat:热部署新 jar ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1390487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com