2012-08-11 92 views
3

在catalina.properties它說:爲什麼Tomcat的跳過DefaultJarScanner.jarsToSkip指定的掃描罐子

 
# 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,\ 

任何人都可以解釋,爲什麼?例如,你必須在你的庫中包含jstl.jar,但是如果它叫做jstl.jar,它會跳過它。我只是不明白跳過它的首要目的是什麼?

+0

嗨!有人知道答案:爲什麼jstl.jar包含在這個列表中? – AdrianRM 2015-12-23 16:48:36

回答

8

評論說這一切:「不應掃描配置信息的文件」 即。如果你知道你的jar沒有任何配置信息,請將它們包含在這裏,這樣tomcat就不會查看它。

底線是這樣的:它會減少tomcat完成啓動的時間。

對於小型部署似乎並不是很有用,但請相信我:確實在數百個jar文件的大型部署中產生巨大差異。

如果沒有包含jars,或者沒有可跳過的模式(例如* .jar--排除以「a」開頭的所有內容),則會打開所有內容並進行讀取以查找配置。

在我工作的公司,我們使用TC Server,它只是一個花哨的Tomcat:沒有模式可以跳過jar,tc服務器大約需要20分鐘才能掃描jar文件...然後再花10分鐘到部署一切。

當我們添加了跳過99%的模式時,我們能夠將服務器啓動時間縮短到12分鐘左右 - 這並不完美,但是整件事情非常巨大,因此這是我們接受的一項交易。

+0

我明白在此屬性中包含jar的原因,但jstl.jar包含配置信息。默認情況下,它包含在此屬性中。我不明白它被tomcat/apache添加的原因。 – Manoj 2016-05-13 12:13:35