【问题标题】:Tomcat classloading issueTomcat类加载问题
【发布时间】:2015-05-07 08:38:26
【问题描述】:

我在同一个 Tomcat (8.0.14) 实例中有 2 个应用程序。两个war 文件都包含相同的jar 文件,但版本不同。 正如我所见,两个应用程序都使用第二个应用程序中的 jar 文件。我认为 tomcat 为 2 个应用程序提供了不同的类加载器。不幸的是,我找不到任何解释此问题的文档。是错误还是预期行为?

罐子的位置

APP1
  WEB-INF
    LIB
      lib-version1.jar

APP2
  WEB-INF
    LIB
      lib-version2.jar

更新: 类加载工作完美。我遇到的似乎是类加载问题的问题是由其他原因引起的

【问题讨论】:

标签: tomcat classloader


【解决方案1】:

确切地说,Tomcat 确实有不同的ClassLoaders 应用程序:

    Bootstrap
        |
     System
        |
     Common
     /     \
Webapp1   Webapp2 ... 

来源:Tomcat documentation

也许你把你的类放到了$CATALINA_HOME/lib,它是由公共ClassLoader加载的,这就是这个原因。

【讨论】: