At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger fo


一、文章前言

    本文是親測有效解決At least one JAR was scanned for TLDs yet contained no TLDs問題,絕對不是為了積分隨便粘貼復制然后壓根都沒有用系列

二、問題描述

    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"也不起作用
三、問題原因

    1.出現這個問題的原因就是Tomcat啟動時會掃描大量jar包,如果含有不符合TLD規范的就會出現這個問題

    2.以后基本上不會使用JSP作為視圖層,所以我們可能根本不需要TLD這個東西,就算不要TLD也沒有什么關系

   3.注意兩個啟動:一個是從tomcat的bin目錄中啟動,另外一個是從Eclipse中或者別的軟件中啟動,注意看Eclipse啟動部分
四、問題解決
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=*.jar

 

 



    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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM