我有一个有点奇怪的问题,我可能措辞不正确,但我的想法是: 我在与少数第三方系统集成的 Tomcat 容器中部署了 WAR。
我希望每个第三方系统的实现都部署在同一个 Tomcat(JVM 容器)中。可能作为一个 JAR。 我希望 WAR 真正有效地使用这个 JAR(速度、负载、内存使用等) 我不想在添加新 JAR 时重新启动 Tomcat。
最好的方法是什么?
最佳答案
您无法在不重新加载的情况下安全地即时添加/更新 JAR。在某些非常特殊的情况下,您可能会添加一个新的 JAR 而侥幸逃脱,但这是很偶然的。
最好的办法是将 JAR 添加到 WEB-INF/lib 并重新加载 Web 应用程序(而不是重新启动 Tomcat)。当 Web 应用程序重新启动时,最终用户可能会看到请求处理暂停,但您不应该看到任何丢弃的请求。请注意,这仅适用于更新使用 Web 应用程序部署的类和 JAR。如果您更改 WEB-INF/web.xml 或 META-INF/context.xml,应用程序仍将重新加载,但请求可能会被丢弃。
关于java - 动态加载的 JAR/等。在同一个 JVM 容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406482/