为什么Tomcat会跳过DefaultJarScanner.jarsToSkip中指定的扫描jar

时间:2012-08-11 01:38:16

标签: tomcat7 bootstrapping tld

在catalina.properties中它说:

# List of JAR files that should not be scanned for configuration information
# such as web fragments, TLD files etc. It must be a comma separated list of
# JAR file names.
# The JARs listed below include:
# - Tomcat Bootstrap JARs
# - Tomcat API JARs
# - Catalina JARs
# - Jasper JARs
# - Tomcat JARs
# - Common non-Tomcat JARs
# - Sun JDK JARs
# - Apple JDK JARs
tomcat.util.scan.DefaultJarScanner.jarsToSkip=\
bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\

任何人都可以解释为什么?例如,您必须在libs中包含jstl.jar,但如果它被称为jstl.jar,则会跳过它。我只是不明白跳过它的重点是什么?

1 个答案:

答案 0 :(得分:8)

评论说明了一切:“不应扫描配置信息的文件” 即。如果您知道您的罐子没有任何配置信息,请在此处包含它们,因此tomcat不会查看它。

底线是:它将减少tomcat完成启动所需的时间。

对于小型部署似乎不太有用,但请相信我: 在数百个jar文件的大型部署中产生巨大差异。

如果没有包含jar,或者没有要跳过的模式(例如* .jar - 要排除以“a”开头的所有内容),那么所有内容都会被打开,读取,以找出有关配置的内容。

在我工作的公司中,我们使用的TC服务器只是一个花哨的Tomcat:没有跳过jar的模式,tc服务器只需要20分钟来扫描jar文件......然后再花10分钟来部署一切。

当我们添加模式以超过99%时,我们能够将服务器启动减少到大约12分钟 - 不完美,但整个事情是巨大的,因此,这是我们接受的交易。