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

avatar 2017年10月09日22:18:22 5 8828 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

【问题描述】


Tomcat 在启动过程中加载众多 jar 文件,默认会对其做 TLDs 扫描,{CATALINA-HOME}/logs/catalina.xxxx-xx-xx.log (xxxx-xx-xx 形如 2015-11-03)文件中会出现大量下面的 log:
  1. 04-Nov-2015 07:50:06.372 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 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.

出现这样的log说明,这条log所指的 jar 做了TLDs的扫描,并且没有在其中找到 TLDs,并且建议打开debug级别的log,查看相关的 jar 文件,在 Tomcat 配置文件中忽略对这样的 jar 的TLDs扫描。

【操作】


以下 tomcat 均指的是的 tomcat的目录

1)编辑 tomcat/conf/logging.properties 文件,在文件末尾添加:
  1. org.apache.jasper.servlet.TldScanner.level = FINE

2)重启Tomcat

3)等待Tomcat重启完成,并且相关web components都加载完成,能够正常工作。此时,在 tomcat/logs/catalina.xxxx-xx-xx.log 文件中能看到类似下面的log:
  1. 04-Nov-2015 07:54:36.941 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1032825 ms

4)cd tomcat/logs/

5)执行下面命令
  1. egrep "No TLD files were found in \[file:[^\]+\]" /www/server/tomcat/logs/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > skips.txt

会在 ~/skips.txt 中得到类似下面的结果:
  1. activation-1.1.1.jar,\
  2. aopalliance-1.0.jar,\
  3. apiguardian-api-1.0.0.jar,\
  4. bcprov-jdk15-1.45.jar,\
  5. c3p0-0.9.2.1.jar,\
  6. cxf-api-2.3.1.jar,\
  7. cxf-common-schemas-2.3.1.jar,\
  8. cxf-common-utilities-2.3.1.jar,\
  9. cxf-rt-bindings-soap-2.3.1.jar,\
  10. cxf-rt-bindings-xml-2.3.1.jar,\
  11. cxf-rt-core-2.3.1.jar,\
  12. cxf-rt-databinding-jaxb-2.3.1.jar,\
  13. cxf-rt-frontend-jaxws-2.3.1.jar,\
  14. cxf-rt-frontend-simple-2.3.1.jar,\
  15. cxf-rt-transports-http-2.3.1.jar,\
  16. cxf-rt-ws-addr-2.3.1.jar,\
  17. cxf-rt-ws-security-2.3.1.jar,\
  18. cxf-tools-common-2.3.1.jar,\
  19. druid-1.0.16.jar,\
  20. geronimo-javamail_1.4_spec-1.7.1.jar,\
  21. jackson-annotations-2.9.0.jar,\
  22. jackson-core-2.9.0.jar,\
  23. jackson-databind-2.9.0.jar,\
  24. javax.servlet.jsp-api-2.3.1.jar,\
  25. jaxb-impl-2.1.13.jar,\
  26. json-20170516.jar,\
  27. jstl-1.1.2.jar,\
  28. mchange-commons-java-0.2.3.4.jar,\
  29. mybatis-3.4.0.jar,\
  30. mybatis-spring-1.3.0.jar,\
  31. mysql-connector-java-5.1.30.jar,\
  32. neethi-2.0.4.jar,\
  33. opentest4j-1.0.0.jar,\
  34. serializer-2.7.1.jar,\
  35. spring-aop-4.2.0.RELEASE.jar,\
  36. spring-aspects-4.2.0.RELEASE.jar,\
  37. spring-beans-4.2.0.RELEASE.jar,\
  38. spring-context-4.2.0.RELEASE.jar,\
  39. spring-context-support-4.2.0.RELEASE.jar,\
  40. spring-core-4.2.0.RELEASE.jar,\
  41. spring-expression-4.2.0.RELEASE.jar,\
  42. spring-jdbc-4.2.0.RELEASE.jar,\
  43. spring-test-4.2.0.RELEASE.jar,\
  44. spring-tx-4.2.0.RELEASE.jar,\
  45. spring-web-4.2.0.RELEASE.jar,\
  46. stax2-api-3.0.2.jar,\
  47. woodstox-core-asl-4.0.8.jar,\
  48. wss4j-1.5.10.jar,\
  49. xalan-2.7.1.jar,\
  50. xml-resolver-1.2.jar,\
  51. XmlSchema-1.4.7.jar,\
  52. xmlsec-1.4.4.jar,\

6)将上面的结果放到 tomcat/conf/catalina.properties 文件中的 “tomcat.util.scan.StandardJarScanFilter.jarsToSkip=” 处,保存该文件

7)(最好先删除  tomcat/work 下的所有内容)重启 Tomcat

重启后,Tomcat 将不再对5)中的 jar 文件做 TLDs 扫描,web components 的加载速度也会显著加快。

8)删除1)中在 logging.properties 中添加的
  1. org.apache.jasper.servlet.TldScanner.level = FINE



原文地址:http://blog.csdn.net/yasi_xi/article/details/49642661

相关问题:https://stackoverflow.com/questions/14375673/how-to-fix-jsp-compiler-warning-one-jar-was-scanned-for-tlds-yet-contained-no-t
  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0