Tomcat启动慢 At least one JAR was scanned for

At least one JAR was scanned for TLDs yet contained no TLDs

环境css

  • CentOS 7.4web

  • jdk-10.0.2apache

  • apache-tomcat-9.0.11tomcat

    29-Aug-2018 19:21:32.257 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

出现问题的缘由是 Tomcat 在启动过程当中加载众多 jar 文件,默认会对其作 TLDs 扫描。 有博客说,修改tomcat属性,忽略对EL表达式的关键字检查。修改 $CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。但并没适用我遇到的状况。app

处理办法this

  1. 编辑 {CATALINA-HOME}/conf/logging.properties 文件,在文件末尾添加:.net

    org.apache.jasper.servlet.TldScanner.level = FINE

    此处需注意,以前说的方法修改的是catalina.properties,而此处修改的是logging.propertiesdebug

  2. 重启 Tomcatcode

  3. 在 {CATALINA-HOME}/logs/ 目录下执行下面命令blog

    egrep "No TLD files were found in \[file:[^\]+\]" /var/log/tomcat7/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > skips.txt

    执行后会在 ~/skips.txt 中获得相似下面的结果:

    axis-1.4.0.jar,\
     axis-ant-1.3.jar,\
     axis-ant-1.4.jar,\
     axis-jaxrpc-1.1.jar,\
     axis-saaj-1.2.jar,\
     axis-wsdl4j-1.5.1.jar,\
     backport-util-concurrent-3.1.jar,\
     batik-css-1.7.jar,\
     batik-ext-1.7.jar,\
     batik-util-1.7.jar,\
     bcmail-jdk15-138.jar,\
     bcmail-jdk15-149.jar,\
     bcpg-jdk15-138.jar,\
     bcpg-jdk15on-149.jar,\
  4. 将上面的结果放到**{CATALINA-HOME}/conf/catalina.properties**文件中的 tomcat.util.scan.StandardJarScanFilter.jarsToSkip= 处,保存该文件

    注意,此处是catalina.properties

  5. 删除步骤1中在 logging.properties 中添加的org.apache.jasper.servlet.TldScanner.level = FINE

操做到这里就完成了,能够重启Tomcat感觉一下,也许就能够了。不过我这边启动的速度却卡在了新的地方

org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory

这个问题参考另外一篇博客 烛✟孩

参考文档:yasi_xi

相关文章
相关标签/搜索