Tomcat 8类加载 - [WEB-INF/lib]和[tomcat/lib]中的JAR之间的区别

Fre*_*ula 4 java tomcat jar classloader tomcat8

在这里说,所有Web应用程序都可以看到通用的类加载器.那么在WEB-INF/lib我的war应用程序的文件夹中有一个JAR文件和在Tomcat的lib文件夹中有相同的JAR文件之间的区别是什么?

这个JAR是我创建的Java SPI的提供者.当我拥有它时WEB-INF/lib,一切都很完美.但是,如果我尝试将此JAR放在Tomcat的lib文件夹下(或在shared/lib配置它之后catalina.properties),我会收到错误.第二个选项对我来说更好,因为我需要完全解耦我的应用程序和提供程序.

我得到的错误是ClassNotFoundException代表我的服务的接口(JAR实现的).此接口位于第三个项目中,该项目是我的war应用程序的依赖项.

Cra*_*ing 5

tomcat/lib目录应该用于整个Web服务器的共享库,并且WEB-INF/lib仅用于一个Web应用程序.