Tomcat类加载器

时间:2014-08-18 19:28:39

标签: tomcat

我有一个使用大量jar的大型应用程序,大多数是其他应用程序之间的常见jar(也是我的),因此,我想创建一个共享存储库。

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

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

如果我将所有项目的jar放在该目录中,一切顺利,应用程序运行正常,但我不想要,我只想将共享库放在那里,剩下的就是jar通常在我的WAR(WEB_INF / lib)..

如果我这样走(共享库中的一些jar和war文件中的其余部分)我的应用程序开始使用战争中的每个jar引发ClassNotFoundException。

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

  

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

     

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

任何人都知道我做错了什么?干杯

1 个答案:

答案 0 :(得分:1)

这是一个简单的错误。

我不小心将app jar留到了共享的类加载器中,所以,那个jar试图访问我的webapp1类加载器上的类,但他不能调用每个类加载器,因为他只知道他的父亲(他们可以& #39; t往下看。)

干杯,