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

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

相關文章
相關標籤/搜索