解決Tomcat7「At least one JAR was scanned for TLDs ye

【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」 apache

 

【問題緣由猜想】Tomcat7/Servlet3.0 新增特性「可插性支持」實現的原理應該是自動掃描jar,當jar中並不包含相關組件時會打印該信息 json

 

【問題處理】從提示信息來看,不處理也能夠,但對於有潔癖的、追求完美的程序員而言這個是不容許的。具體處理步驟: bootstrap

 

1.調整Tomcat對應類的log級別 api

修改${tomcat}/conf/log4j.properties tomcat

Java代碼   收藏代碼
  1. ##解除類org.apache.jasper.compiler.TldLocationsCache的log  
  2. org.apache.jasper.compiler.TldLocationsCache.level = FINE  

 

 2.觀察Tomcat日誌打印信息 eclipse

步驟1執行完後,重啓Tomcat,觀察Tomcat日誌,會在日誌中發現相似以下打印信息: jsp

Java代碼   收藏代碼
  1. 九月 092013 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. 九月 092013 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添加到不掃描清單中 ide

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  

 

 

【注意】 this

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

相關文章
相關標籤/搜索