1、文章前言
本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制而后压根都没有用系列
2、问题描述
1.今天测试发现Tomcat启动贼慢,固然这个不是随机数问题,而是每次卡在At least one JAR was scanned for TLDs yet contained no TLDs这个位置要好半天,并且仍是在只有一个项目的状况下!
2.参考别的文章说编辑logging.properties 文件,在文件末尾添加,org.apache.jasper.servlet.TldScanner.level = FINE,启动服务器,而后在控制台看到什么No的输出提示,保存在某一个文件中,而后接下来将文件中提示的jar包再添加到catalina.properties 文件中的 tomcat.util.scan.StandardJarScanFilter.jarsToSkip的后面,问题能暂时解决,而后你会发下如下几个问题
起做用了,可是当你新加一个jar包不符合规范,烦人的提示又开始了
只适用于服务器内项目已经固定了的状况,新建一个不一样类项目问题又出现
3.想过直接关闭TLD检查,在 conf/context.xml的<Context>中添加processTlds="false"也不起做用
3、问题缘由
1.出现这个问题的缘由就是Tomcat启动时会扫描大量jar包,若是含有不符合TLD规范的就会出现这个问题
2.之后基本上不会使用JSP做为视图层,因此咱们可能根本不须要TLD这个东西,就算不要TLD也没有什么关系
3.注意两个启动:一个是从tomcat的bin目录中启动,另一个是从Eclipse中或者别的软件中启动,注意看Eclipse启动部分
4、问题解决
4.1 解决步骤
1.能够在Tomcat安装目录下apache-tomcat-9.0.1\conf\catalina.properties文件中看到有如下一串代码,表明的是在启动Tomcat须要跳过检查的jar包
2.那么解决办法就是跳过因此jar包的TLD检查,将全部tomcat.util.scan.StandardJarScanFilter.jarsToSkip=后面的全部经过\链接的这些.jar所有删除(操做以前请备份源文件),直接给tomcat.util.scan.StandardJarScanFilter.jarsToSkip赋值"*.jar","*.jar"表明跳过全部以.jar结尾的文件,示例以下
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jarapache
3.删除tomcat的work目录中的全部文件避免缓存干扰;清空全部logs目录中的日志文件,为了方便查看日志文件
4.2 从Tomcat的Bin目录中启动服务器
1.如今到bin目录中找到startup.bat(windows:双击便可运行)或startup.sh(Linux:命令 "./startup.sh" 运行)进行启动,发现启动超快,只须要807毫秒
5.注意:这里只是直接在bin中启动了tomcat服务器,接下来是从Eclipse配置tomcat,经过Eclipse启动服务器
4.3 Eclipse启动Tomcat
1.若是原来就已经配置过该Tomcat的会发如今Eclipse中启动仍是老样子,每次卡在TLD那里,感受根本没有解决,缘由以下
Eclipse没有使用配置过的Tomcat,而是使用了自带的Tomcat
Eclipse中原来配置过该Tomcat,由于Tomcat缓存致使没有生效
2. 接下在最重要的一步就是删除Eclipse原来配置过的服务器,单击右键选择删除便可
3.建立新的运行环境,改为如今新配置的Tomcat,这样才能让配置生效,配置Tomcat服务器参考文章:https://blog.csdn.net/sinat_34104446/article/details/82721884
4.建立新的服务器以后启动只要482ms
windows