【问题标题】:Tomcat Class LoaderTomcat 类加载器
【发布时间】:2014-10-11 19:12:03
【问题描述】:

我有一个使用很多 jar 的大型应用程序,大部分是其他应用程序(也是我的)之间的常用 jar,所以,我想创建一个共享存储库。

我以这种方式编辑了 catalina.properties (Tomcat 7):

shared.loader=${catalina.base}/mylibs/*.jar

如果我将所有项目的 jars 放在该目录中一切顺利并且应用程序正常运行,但我不希望这样,我只想将共享库放在那里并将其余 jars 通常留在我的 WAR 中( WEB_INF/lib)..

如果我这样做(共享库中的一些 jar 和 war 文件中的其余 jar),我的应用程序开始在 war 中的每个 jar 中引发 ClassNotFoundException。

根据:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html 应该可以正常工作,正如他们所说:

因此,从 Web 应用程序的角度来看,类或资源加载按以下顺序查看以下存储库:

JVM 的引导类 系统类加载器类(如上所述) /WEB-INF/Web 应用程序的类 /WEB-INF/lib/*.jar 您的 Web 应用程序 通用类加载器类(如上所述)

有人知道我做错了什么吗?干杯

【问题讨论】:

    标签: tomcat


    【解决方案1】:

    这是一个简单的错误。

    我不小心将一个应用程序 jar 留在了共享类加载器中,所以,那个 jar 试图访问我的 webapp1 类加载器上的一个类,但他不能调用每个类加载器,因为他只知道他的父亲(他们不能往下看)。

    干杯,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      相关资源
      最近更新 更多