Otter-水獭社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 6812|回复: 0

Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs

[复制链接]

32

主题

33

帖子

218

积分

中级会员

Rank: 3Rank: 3

积分
218
发表于 2019-1-9 13:42:40 | 显示全部楼层 |阅读模式
一、问题描述    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的中添加processTlds="false"也不起作用

二、问题原因
    1.出现这个问题的原因就是Tomcat启动时会扫描大量jar包,如果含有不符合TLD规范的就会出现这个问题

    2.以后基本上不会使用JSP作为视图层,所以我们可能根本不需要TLD这个东西,就算不要TLD也没有什么关系

   3.注意两个启动:一个是从tomcat的bin目录中启动,另外一个是从Eclipse中或者别的软件中启动,注意看Eclipse启动部分

三、问题解决
    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结尾的文件,示例如下:

# - Test JARs (JUnit, Cobertura and dependencies)
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jar
# Default list of JAR files that should be scanned that overrides the default


3.删除tomcat的work目录中的所有文件避免缓存干扰;清空所有logs目录中的日志文件,为了方便查看日志文件

4.重新启动。

作者:情醉梦中魂
参考原文:https://blog.csdn.net/sinat_34104446/article/details/82721250
版权声明:本文为博主原创文章,转载请附上博文链接!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Otter-水獭社区 ( 豫ICP备14008196号

GMT+8, 2019-6-26 20:08 , Processed in 1.081175 second(s), 28 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表