1、文章前言
本文是親測有效解決At least one JAR was scanned for TLDs yet contained no TLDs問題,絕對不是爲了積分隨便粘貼複製而後壓根都沒有用系列
2、問題描述
1.今天測試發現Tomcat啓動賊慢,固然這個不是隨機數問題,而是每次卡在At least one JAR was scanned for TLDs yet contained no TLDs這個位置要好半天,並且仍是在只有一個項目的狀況下!
2.參考別的文章說編輯logging.properties 文件,在文件末尾添加,org.apache.jasper.servlet.TldScanner.level = FINE,啓動服務器,而後在控制檯看到什麼No的輸出提示,保存在某一個文件中,而後接下來將文件中提示的jar包再添加到catalina.properties 文件中的 tomcat.util.scan.StandardJarScanFilter.jarsToSkip的後面,問題能暫時解決,而後你會發下如下幾個問題
起做用了,可是當你新加一個jar包不符合規範,煩人的提示又開始了
只適用於服務器內項目已經固定了的狀況,新建一個不一樣類項目問題又出現
3.想過直接關閉TLD檢查,在 conf/context.xml的<Context>中添加processTlds="false"也不起做用
3、問題緣由
1.出現這個問題的緣由就是Tomcat啓動時會掃描大量jar包,若是含有不符合TLD規範的就會出現這個問題
2.之後基本上不會使用JSP做爲視圖層,因此咱們可能根本不須要TLD這個東西,就算不要TLD也沒有什麼關係
3.注意兩個啓動:一個是從tomcat的bin目錄中啓動,另一個是從Eclipse中或者別的軟件中啓動,注意看Eclipse啓動部分
4、問題解決
4.1 解決步驟
1.能夠在Tomcat安裝目錄下apache-tomcat-9.0.1\conf\catalina.properties文件中看到有如下一串代碼,表明的是在啓動Tomcat須要跳過檢查的jar包
2.那麼解決辦法就是跳過因此jar包的TLD檢查,將全部tomcat.util.scan.StandardJarScanFilter.jarsToSkip=後面的全部經過\鏈接的這些.jar所有刪除(操做以前請備份源文件),直接給tomcat.util.scan.StandardJarScanFilter.jarsToSkip賦值"*.jar","*.jar"表明跳過全部以.jar結尾的文件,示例以下
tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*.jarapache
3.刪除tomcat的work目錄中的全部文件避免緩存干擾;清空全部logs目錄中的日誌文件,爲了方便查看日誌文件
4.2 從Tomcat的Bin目錄中啓動服務器
1.如今到bin目錄中找到startup.bat(windows:雙擊便可運行)或startup.sh(Linux:命令 "./startup.sh" 運行)進行啓動,發現啓動超快,只須要807毫秒
5.注意:這裏只是直接在bin中啓動了tomcat服務器,接下來是從Eclipse配置tomcat,經過Eclipse啓動服務器
4.3 Eclipse啓動Tomcat
1.若是原來就已經配置過該Tomcat的會發如今Eclipse中啓動仍是老樣子,每次卡在TLD那裏,感受根本沒有解決,緣由以下
Eclipse沒有使用配置過的Tomcat,而是使用了自帶的Tomcat
Eclipse中原來配置過該Tomcat,由於Tomcat緩存致使沒有生效
2. 接下在最重要的一步就是刪除Eclipse原來配置過的服務器,單擊右鍵選擇刪除便可
3.建立新的運行環境,改爲如今新配置的Tomcat,這樣才能讓配置生效,配置Tomcat服務器參考文章:https://blog.csdn.net/sinat_34104446/article/details/82721884
4.建立新的服務器以後啓動只要482ms
windows