【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