解决Tomcat7“At least one JAR was scanned for TLDs yet contained no TLDs”问题

2013-12-05 21:58:00|  分类: tomcat |举报 |字号 订阅

 

【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

Java代码  
  1. ##解除类org.apache.jasper.compiler.TldLocationsCache的log
  2. org.apache.jasper.compiler.TldLocationsCache.level = FINE

 2.观察Tomcat日志打印信息

步骤1执行完后,重启Tomcat,观察Tomcat日志,会在日志中发现类似如下打印信息:

Java代码  
  1. 九月 09, 2013 10:55:37 上午 org.apache.jasper.compiler.TldLocationsCache tldScanJar
  2. 详细: 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.
  3. 九月 09, 2013 10:55:37 上午 org.apache.jasper.compiler.TldLocationsCache tldScanJar
  4. 详细: 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添加到不扫描清单中

Java代码  
  1. tomcat.util.scan.DefaultJarScanner.jarsToSkip=\
  2. bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,\
  3. annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,\
  4. catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,\
  5. jasper.jar,jasper-el.jar,ecj-*.jar,\
  6. tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,\
  7. tomcat-jni.jar,tomcat-spdy.jar,\
  8. tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,\
  9. tomcat-juli-adapters.jar,catalina-jmx-remote.jar,catalina-ws.jar,\
  10. tomcat-jdbc.jar,\
  11. tools.jar,\
  12. commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,\
  13. commons-dbcp*.jar,commons-digester*.jar,commons-fileupload*.jar,\
  14. commons-httpclient*.jar,commons-io*.jar,commons-lang*.jar,commons-logging*.jar,\
  15. commons-math*.jar,commons-pool*.jar,\
  16. jstl.jar,\
  17. geronimo-spec-jaxrpc*.jar,wsdl4j*.jar,\
  18. ant.jar,ant-junit*.jar,aspectj*.jar,jmx.jar,h2*.jar,hibernate*.jar,httpclient*.jar,\
  19. jmx-tools.jar,jta*.jar,log4j*.jar,mail*.jar,slf4j*.jar,\
  20. xercesImpl.jar,xmlParserAPIs.jar,xml-apis.jar,\
  21. junit.jar,junit-*.jar,ant-launcher.jar,\
  22. 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”问题的更多相关文章

  1. 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 ...

  2. [转]完美解决)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问题,绝对不是为了积分随便粘贴复制然后压根都 ...

  3. 解决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 ...

  4. 解决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 ...

  5. 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 ...

  6. 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这一步加载时间非常长, 从网上收集了各种资料 ...

  7. 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. =========================== ...

  8. 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 ...

  9. 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问题,绝对不是为了积分随便粘贴复制然后压根都没有用 ...

随机推荐

  1. occ代码分析

    临时变量就是local里面的变量擦除变量就是把模型改成擦除标记 void SelectMgr_SelectionManager::LoadMode (const Handle(SelectMgr_Se ...

  2. JS学习笔记01

    文章转载pigpigpig4587 的 1.Javascript是区分大小写的语言.也就是说.关键字.变量,函数和所有的标识符都必须采取一致的大小写形式.因为html不严格区分大小写,所以在html中 ...

  3. DOS常用命令总结

    cd 文件夹 如要进入D盘x文件夹,需要先d: 再Enter,然后cd x再Enter. echo \ & pause exit 换行等待按任意键退出,在此操作之前可以做发邮件等动作,bat调 ...

  4. AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案

    AntiXSS v4.0中Sanitizer.GetSafeHtmlFragment等方法将部分汉字编码为乱码的解决方案 以下代码为asp.net环境下,c#语言编写的解决方案.数据用Dictiona ...

  5. 控件包含代码块(即 <% ... %>),因此无法修改控件集合

    错误: “/”应用程序中的服务器错误. 控件包含代码块(即 <% ... %>),因此无法修改控件集合. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解 ...

  6. asp.net网站运行出错:the underlying provider failed on open的解决

    在登录系统,通过linq查询时发生错误,the underlying provider failed on open,如何解决,请看: Step 1:Open Internet Information ...

  7. Oracle中Merge into用法总结

    MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执 ...

  8. 4412开发板升级4.2之后改了logo开机后屏幕闪解决办法

    荣品4412开发板升级到4.2请注意增加虚拟机内存. 问:荣品4412开发板升级到Android4.2之后,改了logo.4412板子开机后,过一会屏幕就一闪一闪,是什么原因? Android4.2编 ...

  9. 深入浅出MFC[摘记]

    1.Windows程序的运行本质:基于消息,事件驱动(Message Based,Event Driven).2.程序调用GetMessage API循环获取消息,程序的生命靠它来推动. MSG ms ...

  10. μC/OS-Ⅲ中的临界段代码

    临界段代码(critical sections),也叫临界区(critical region),是指那些必须完整连续运行,不可被打断的代码段.μC/OS-Ⅲ系统中存在大量临界段代码.采用两种方式对临界 ...