最近使用tomcat8启动项目时,发现At least one JAR was scanned for TLDs yet contained no TLDs这一步加载时间非常长,

从网上收集了各种资料最终得以解决,整理了一下过程,希望能够帮到大家。

参考文章:https://blog.csdn.net/yasi_xi/article/details/49642661

注:${catalina.base}特指tomcat根目录

1)找到${catalina.base}/conf/logging.properties 文件,在文件末尾添加:

org.apache.catalina.startup.TldConfig.level = FINE
org.apache.jasper.compiler.TldLocationsCache.level = FINE
org.apache.jasper.servlet.TldScanner.level = FINE

2)重启Tomcat ,等完全成功启动后。此时,在${catalina.base}/logs/catalina.xxxx-xx-xx.log (xxxx-xx-xx为当前年月日)文件中能看到一下的log:

3)如果是linux环境,cd ${catalina.base}/logs/

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

如果是windows环境,可以使用notepad++匹配出所有jar,也可以自行使用命令匹配出所有jar(本人bat脚本写的不熟练,这里也没去研究)

4)总之最终得到的结果如下:

jcl-over-slf4j-1.7.25.jar,\
jcifs-1.3.17.jar,\
urlrewritefilter-4.0.4.jar,\
spring-webmvc-portlet-4.3.10.RELEASE.jar,\
spring-instrument-4.3.10.RELEASE.jar,\
aopalliance-1.0.jar,\
commons-email-1.5.jar,\
jaxws-api-2.2.10.jar,\
jsr173_api-1.0.jar,\
fastjson-1.2.47.jar
spring-context-4.3.10.RELEASE.jar,\
commons-configuration-1.10.jar
javax.persistence-2.0.0.jar
javax.mail-1.5.6.jar,\
spring-test-4.3.10.RELEASE.jar
jstl-1.2.jar
xml-apis-1.0.b2.jar,\
commons-net-3.6.jar,\

6)将上面的结果放到 ${catalina.base}/conf/catalina.properties 文件中的 “tomcat.util.scan.StandardJarScanFilter.jarsToSkip=” 处,保存该文件,结果如下(这里支持通配符,例如spring*.jar):

5)注释掉步骤1中在 logging.properties 中添加的三行代码,删除  ${catalina.base}/work 下的所有内容,重启 Tomcat

#org.apache.catalina.startup.TldConfig.level = FINE
#org.apache.jasper.compiler.TldLocationsCache.level = FINE
#org.apache.jasper.servlet.TldScanner.level = FINE

重启后,Tomcat 将不再对步骤4中配置 jar 文件做 TLDs 扫描,tomcat启动速度也会显著加快。



 

Tomcat 8启动速度慢原因1: At least one JAR was scanned for TLDs yet contained no TLDs的更多相关文章

  1. Tomcat启动慢原因之一 At least one JAR was scanned for TLDs yet contained no TLDs

    Tomcat启动时提示: 信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging f ...

  2. Tomcat:At least one JAR was scanned for TLDs yet contained no TLDs

    启动Tomcat的时候,经常见到这样的BUG:   14-Apr-2019 13:53:25.198 信息 [localhost-startStop-1] org.apache.jasper.serv ...

  3. Tomcat启动log打印到INFO: At least one JAR was scanned for TLDs yet contained no TLD各种解决方式

    问题: 启动tomcat时,catalina.out日志打印到如下内容就停止不动了,也不报错 SEVERE: FarmWarDeployer can only work as host cluster ...

  4. [转]完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs

    一.文章前言    本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制然后压根都 ...

  5. tomcat 启动时遇到org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs

    当发生这样的错误的时候 org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet ...

  6. tomcat启动卡在了 At least one JAR was scanned for TLDs yet contained no TLDs 的根本原因与解决办法

    1.前言 有时候服务器开启时启动不了,卡在了 org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned fo ...

  7. 关于tomcat启动错误:At least one JAR was scanned for TLDs yet contained no TLDs

    一.问题原因: 1.出现这个问题的原因就是Tomcat启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题 2.以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西 ...

  8. tomcat启动很慢 停留在 At least one JAR was scanned for TLDs yet contained no TLDs.

    部署项目时候,发现启动特别慢,要等好几分钟,这不正常啊.然后每次部署都停留在 At least one JAR was scanned for TLDs yet contained no TLDs. ...

  9. 阿里云服务器,tomcat启动,一直卡在At least one JAR was scanned for TLDs yet contained no TLDs就不动了

    项目在本地是可以成功运行的,网上看到一堆各式各样的解决办法感觉都不适合我,于是绝望的删webapps,重新上传,一直不行. 重复了第3次还是第4次,居然就好了,这是什么操作.

随机推荐

  1. select(Linux 编程)

    select系统调用时用来让我们的程序监视多个文件句柄的状态变化的.程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变. 关于文件句柄,其实就是一个整数,通过socket函 ...

  2. Linux 显示权限

    Linux 显示权限 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -lh 总用量 56K -rw-r--r-- 1 youhaidong youhai ...

  3. hdu5820 Lights

    主席树 但是能够想到题解的做法很难 #include <stdio.h> #include <string.h> #include <vector> #includ ...

  4. es6的新特性--模板字符串

    这几天简单看了一下深入浅出es6这本书,感觉特实用,学习了一个新特性---模板字符串在项目开发中,拼接字符串是不可缺少的,动态创建dom元素以及js操作数据都要拼接字符串,在es6出来之前,我们都通常 ...

  5. java基础之二分法查找

    package p1; import java.util.*; public class Sortdob { public static void BubbleSort(int[] arr) {    ...

  6. JavaWeb开发环境搭建Eclipse配置Tomcat

    转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/48651251本文出自[吴孝城的CSDN博客] 工具: Eclipse官网下载:http:// ...

  7. Storm 入门的Demo教程

    Strom介绍 Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop.随着越来越多的场景对Hado ...

  8. C++输入输出总结_输入

    1. 输入输出的本质 C++中的输入输出都是通过流来进行的,而具体的输出输入都是通过对流进行操作来完成的,一般为定向一个流(重定向),清空流,向流里边添加新的元素.C++把输入输出看做字节流,输入时从 ...

  9. 将["a"=1,"b"=2] 转为对象

    var obj = {}; var arr = ["a=1","b=2","c=3"]; for (var x in arr){ var s ...

  10. node.js 模块化

    模块是编写稍大一点点的程序 一般就会将代码模块化 在node.js中每一个文件就是一个模块,而文件路径就是模块名 怎么使用模块? 在编写某个模块是都有三个预先定义(require,exports,mo ...