解决Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”问题
【Tomcat版本】7.0.42
【问题描述】Tomcat启动后,访问动态页面后提示“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”
【问题原因猜测】Tomcat7/Servlet3.0 新增特性“可插性支持”实现的原理应该是自动扫描jar,当jar中并不包含相关组件时会打印该信息
【问题处理】从提示信息来看,不处理也可以,但对于有洁癖的、追求完美的程序员而言这个是不允许的。具体处理步骤:
1.调整Tomcat对应类的log级别
修改${tomcat}/conf/log4j.properties
- ##解除类org.apache.jasper.compiler.TldLocationsCache的log
- org.apache.jasper.compiler.TldLocationsCache.level = FINE
2.观察Tomcat日志打印信息
步骤1执行完后,重启Tomcat,观察Tomcat日志,会在日志中发现类似如下打印信息:
- 九月 09, 2013 10:55:37 上午 org.apache.jasper.compiler.TldLocationsCache tldScanJar
- 详细: No TLD files were found in [file:/E:/devspace/xxt_login/WEB-INF/lib/json-lib-2.3-jdk15.jar]. Consider adding the JAR to the tomcat.util.scan.DefaultJarScanner.jarsToSkip or org.apache.catalina.startup.TldConfig.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file.
- 九月 09, 2013 10:55:37 上午 org.apache.jasper.compiler.TldLocationsCache tldScanJar
- 详细: No TLD files were found in [file:/E:/devspace/xxt_login/WEB-INF/lib/poi-3.8.jar]. Consider adding the JAR to the tomcat.util.scan.DefaultJarScanner.jarsToSkip or org.apache.catalina.startup.TldConfig.jarsToSkip property in CATALINA_BASE/conf/catalina.properties file.
3.调整${tomcat}/conf/catalina.properties,将提示的jar添加到不扫描清单中
- tomcat.util.scan.DefaultJarScanner.jarsToSkip=\
- bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\
- annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,\
- catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,\
- jasper.jar,jasper-el.jar,ecj-*.jar,\
- tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,\
- tomcat-jni.jar,tomcat-spdy.jar,\
- tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\
- tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\
- tomcat-jdbc.jar,\
- tools.jar,\
- commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\
- commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\
- commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\
- commons-math*.jar,commons-pool*.jar,\
- jstl.jar,\
- geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\
- ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\
- jmx-tools.jar,jta*.jar,log4j*.jar,mail*.jar,slf4j*.jar,\
- xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\
- junit.jar,junit-*.jar,ant-launcher.jar,\
- json-lib-*.jar,poi-*.jar
【注意】
1.如果使用eclipse server插件、Sysdeo tomcat插件启动Tomcat,此配合可能无效
2.步骤1调整完后,最好清除下以下两个文件夹${tomcat}/conf/Catalina ${tomcat}/work/Catalina
3.尽量使用*号实现模式匹配,以避免因jar版本升级带来的重复修改代价
【参考资料】
Servlet3.0新特性
http://blog.csdn.net/aking21alinjuju/article/details/5583820
转自:http://mov-webhobo.iteye.com/blog/1939655
解决Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”问题的更多相关文章
- Tomcat7启动log打印到INFO: At least one JAR was scanned for TLDs yet contained no TLDs.就停止不动了
环境: RHEL7,tomcat7.0.70 问题: 启动tomcat时,catalina.out日志打印到如下内容就停止不动了,也不报错 SEVERE: FarmWarDeployer can on ...
- [转]完美解决)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问题,绝对不是为了积分随便粘贴复制然后压根都 ...
- 解决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
在写spring security小程序时遇到 At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug l ...
- 解决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 loggin ...
- 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 ...
- Tomcat 8启动速度慢原因1: At least one JAR was scanned for TLDs yet contained no TLDs
最近使用tomcat8启动项目时,发现At least one JAR was scanned for TLDs yet contained no TLDs这一步加载时间非常长, 从网上收集了各种资料 ...
- 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. =========================== ...
- 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 ...
- At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger fo
一.文章前言 本文是亲测有效解决At least one JAR was scanned for TLDs yet contained no TLDs问题,绝对不是为了积分随便粘贴复制然后压根都没有用 ...
随机推荐
- EasyUI combobox 下拉高度自适应
要指出的是,combobox是继承自combo的,所以,combo的属性也可以被combobox使用,该问题也是这样产生的,知道这个原理,该问题就解决一半了,另一点要指出的是,在easyui中,num ...
- 利用ajax向jsp传输数据
ajax代码 var obtn=document.getElementsByTagName('input')[0]; obtn.onclick=function () { var xhr=null; ...
- ADO总结测试数据库
create database ADO测试 go use ADO测试 go create table Student ( Code ) not null primary key,--学生编号,主键 N ...
- Android ORM应用开发框架KJFrameForAndroid使用详解
本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary. KJFrameForAndroid简介 KJFrameForAndro ...
- bzoj 3172: [Tjoi2013]单词
#include<cstdio> #include<cstring> #include<iostream> #define M 1000008 using name ...
- Log4J详解
Log4J 简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- serialize和unserialize函数
序列化是将变量转换为可保存或传输的字符串的过程:反序列化就是在适当的时候把这个字符串再转化成原来的变量使用.这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性.1. serialize和u ...
- mysql使用
1.以查询结果建表 create table newTableName select column1 [newName1] [, column2 [newName2], .. , columnn [n ...
- 节点NODE
1.整个文档是一个文档节点 * 每个 XML 标签是一个元素节点 * 包含在 XML 元素中的文本是文本节点 * 每一个 XML 属性是一个属性节点 * 注释属于注释节点2. 获取NODE的方式 2. ...
- 前端开发week2
从网页布局看思维方式以及思维方式对于前端制作的重要性 经过了两个星期的学习,对于静态网页的制作也已经有了比较完整的理论知识和实践基础,技术层面的东西固然还是很重要.是最基础的,但是在实际制作网页的过程 ...