动态加载或替换Web容器(Tomcat)中的jar

时间:2013-08-04 20:53:52

标签: java spring tomcat spring-mvc web-container

我的问题实际上非常简单,但答案可能很复杂。是否可以在运行时动态加载jar-甚至可以替换webcontainer上下文中已加载的jar?在这个特定的情况下,我对Tomcat和Spring MVC的组合很感兴趣,但我想这个技术,如果有的话可以适应其他技术栈。

如果问题的答案是肯定的,那么直接的后续问题是:哪种方法最直接?我知道OSGi,我很确定它可以在web容器中动态加载jar,但我认为这是一个重量级的解决方案。

1 个答案:

答案 0 :(得分:1)

我不确定如何正确加载JAR,但您可以在运行时动态加载任何类。如果您感兴趣的是JAR中包含的类,则可以使用类加载器加载这些类。或者更具体地说是JAR类加载器JarClassLoader Class

如果您尝试替换JAR,则该方法可能是替换从该JAR加载的类,并且唯一的方法是,如果对这些类的每个类的引用都是“垃圾回收”。此时,您可以从新位置加载相同的类。Class Unloading

类似于你的问题How Should I load Jars dynamically at run-time?