【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代碼
- ##解除類org.apache.jasper.compiler.TldLocationsCache的log
- org.apache.jasper.compiler.TldLocationsCache.level = FINE
2.觀察Tomcat日誌打印信息 eclipse
步驟1執行完後,重啓Tomcat,觀察Tomcat日誌,會在日誌中發現相似以下打印信息: jsp
Java代碼
- 九月 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添加到不掃描清單中 ide
Java代碼
- 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
【注意】 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