Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat 7 lib目录中的jar文件_Tomcat_Shared Libraries - Fatal编程技术网

Tomcat 7 lib目录中的jar文件

Tomcat 7 lib目录中的jar文件,tomcat,shared-libraries,Tomcat,Shared Libraries,我想知道以下几点:我有一个Tomcat7专用于一个Web应用程序。把任何jar放在$TOMCAT_HOME/lib目录中有意义吗?在报告中说: 因此,从web应用程序的角度来看,类或资源加载按以下顺序查看存储库: JVM的引导类 系统类加载器类(如上所述) /WEB应用程序的WEB-INF/类 /WEB应用程序的WEB-INF/lib/*.jar 通用类加载器类(如上所述) 所以,如果我读对了,就没有理由把avtivemq或commons放在dbcp中。我可以将它们放在我的webapps l

我想知道以下几点:我有一个Tomcat7专用于一个Web应用程序。把任何jar放在$TOMCAT_HOME/lib目录中有意义吗?在报告中说:

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

  • JVM的引导类
  • 系统类加载器类(如上所述)
  • /WEB应用程序的WEB-INF/类
  • /WEB应用程序的WEB-INF/lib/*.jar
  • 通用类加载器类(如上所述)
所以,如果我读对了,就没有理由把avtivemq或commons放在dbcp中。我可以将它们放在我的webapps lib文件夹中,并绝对确定它们将首先被提取。如果是这样的话,有没有其他场景对我使用$TOMCAT_HOME/lib目录有意义?如果没有,请您解释一下上述缺陷在哪里

谢谢


G.

如果您的Web应用程序(或大多数应用程序)必须共享具有相同版本的相同库(即数据库驱动程序或SPI ObjectFactorys),则应在$TOMCAT_HOME/lib中共享它们。如果没有充分的理由共享LIB,请将其保存在webapp的类加载器中。

是。如果重新启动web应用程序(例如,通过实时上载新版本或按下tomcat manager控制台上的“重新启动”按钮),webapp文件夹中的所有jar文件都将刷新并重新加载,但共享库文件夹中的jar文件不会重新加载。这意味着存储在jar中的类中的任何静态值都不会重置,jar在初始化时启动的任何线程也不会重新启动。我不知道这个问题中的jar文件,但这对于其他jar文件可能很重要(特别是那些假设能够启动守护程序线程而不是终止它的线程——如果将它们留在web app文件夹中,将导致上下文泄漏,如果频繁重新加载,则会随着时间的推移导致大量额外内存使用)