我是Tomcat的新手,并且一直在使用Tomcat7中的virtualWebAppLoader。它工作正常。但是,当我在tomcat / lib中包含相同的第三方jar文件集并使用公共加载器或将它们放在shared / lib中并使用共享加载器时,服务不会返回任何数据。 jar文件集在每个加载器中保持不变,但它们仅适用于virtualWebAppLoader。部署日志在catalina.out的所有部署中都是相同的。但是当我使用XHR命中服务时,我会得到以下与部署日志相同的日志:
Sep 11, 2017 10:41:57 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.16 11/28/2012 02:09 PM'
Sep 11, 2017 10:42:07 AM com.sun.jersey.api.core.servlet.WebAppResourceConfig init
INFO: Scanning for root resource and provider classes in the Web app resource paths:
/WEB-INF/lib
/WEB-INF/classes
Sep 11, 2017 10:42:07 AM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class com.abc.Class1
class com.abc.Class2
Sep 11, 2017 10:42:07 AM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Sep 11, 2017 10:42:07 AM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.16 11/28/2012 02:09 PM
通过XHR每次点击我都会得到上述日志。我不知道这是由于丢失的罐子还是碰撞的罐子。但是所有加载器中的jar集都是相同的,并且它在VirtualWebAppLoader中运行良好。
答案 0 :(得分:0)
我找到了根本原因。我在多个项目中有一个项目jar的共同依赖项,看起来它是用不同的类加载器加载两次。但我仍然无法弄清楚为什么VirtualWebAppLoader不会发生这种情况。