Почему Tomcat пропускает банки сканирования, указанные в DefaultJarScanner.jarsToSkip

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

Кто-нибудь может объяснить ПОЧЕМУ? Например, вы должны включить jstl.jar в свои библиотеки, но если он называется jstl.jar, он его пропускает. Я просто не понимаю, какой смысл пропускать это в первую очередь?


person Matthew Smith    schedule 11.08.2012    source источник
comment
Привет! Кто-нибудь знает ответ на вопрос: Почему jstl.jar включен в этот список?   -  person AdrianRM    schedule 23.12.2015


Ответы (1)


В комментарии сказано все: «файлы, которые не следует сканировать на наличие информации о конфигурации», т.е. если вы знаете, что ваши jar-файлы не имеют никакой информации о конфигурации, включите их сюда, чтобы tomcat не заглядывал в нее.

Суть в следующем: это сократит время, необходимое tomcat для завершения загрузки.

Это кажется не очень полезным в небольших развертываниях, но поверьте мне: это действительно имеет огромное значение в больших развертываниях с сотнями jar-файлов.

Если jar не включены, или если нет шаблона для пропуска (например, a*.jar - чтобы исключить все, что начинается с "a"), то все открывается, читается, чтобы узнать о конфигурации.

В компании, в которой я работаю, мы используем TC Server, который представляет собой просто причудливый Tomcat: без шаблонов для пропуска jar-файлов серверу tc требуется около 20 минут только для сканирования файлов jar... затем еще 10 минут для развертывания всего.

Когда мы добавили шаблоны для пропуска почти 99% , мы смогли сократить запуск сервера примерно до 12 минут — не идеально, но в целом это огромно, поэтому мы согласились на эту сделку.

person AlexD    schedule 12.02.2013
comment
Я понимаю причину включения jar в это свойство, но jstl.jar содержит информацию о конфигурации. По умолчанию он включен в это свойство. Я не понимаю, почему он был добавлен tomcat/apache. - person Manoj; 13.05.2016
comment
И я не понимаю эту волшебную информацию о конфигурации. Если некоторые из банок имеют информацию о конфигурации, почему бы не перечислить их явно. Я ищу информацию о конфигурации в jar-файлах и не нахожу ничего подходящего, кроме некоторых вещей, касающихся подписи кода. - person Marvin; 20.09.2019