programing

JSP 컴파일러 경고를 수정하는 방법 : 하나의 JAR이 TLD에 대해 스캔되었지만 TLD가 포함되지 않았습니까?

procenter 2021. 1. 17. 12:11
반응형

JSP 컴파일러 경고를 수정하는 방법 : 하나의 JAR이 TLD에 대해 스캔되었지만 TLD가 포함되지 않았습니까?


응용 프로그램을 시작하거나 ant를 통해 JSP를 컴파일 할 때 Tomcat 7 Jasper는 불필요하거나 잘못 배치 된 JAR 파일에 대해 불평합니다. 나는 아래 메시지를 받았습니다

**compile-jsp:**
   [jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar
   [jasper] INFO: 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. 

스캔하는 동안 불필요한 JAR을 건너 뛰는 방법은 Tomcat에서 시작 시간과 JSP 컴파일 시간을 향상시킬 수 있습니까?

더 나은 출력을 가능하게하는 방법?


Tomcat 8.5 . / conf 디렉토리 세트에있는 catalina.properties 내부 :

tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\*.jar

또는 Tomcat의 / conf 디렉토리에있는 context.xml로 이동하여 다음을 추가하십시오.

<JarScanner scanClassPath="false"/>

들어 톰캣 8 , 나는 다음 행을 추가했다 tomcat/conf/logging.propertiesTomcat에서 스캔 한 항아리가 로그에 표시하기 :

org.apache.jasper.servlet.TldScanner.level = FINE

위의 솔루션은 저에게 효과적이지 않았습니다. 대신 logging.properties 파일의 마지막 줄에서 해시 (#)를 제거하여 작동하도록했습니다.

# To see debug messages in TldLocationsCache, uncomment the following line:
org.apache.jasper.compiler.TldLocationsCache.level = FINE

다음 단계는 다음 줄 바로 뒤에 Tomcat 7이 catalina.properties 파일에서 찾고있는 jar를 추가하는 것입니다.

org.apache.catalina.startup.TldConfig.jarsToSkip=

누구에게나 도움이된다면 아래 출력 파일의 내용을 기존 org.apache.catalina.startup.TldConfig.jarsToSkip=항목에 추가했습니다.

이것이 /var/log/tomcat7/catalina.outTomcat 로그의 위치입니다.

egrep "No TLD files were found in \[file:[^\]+\]" /var/log/tomcat7/catalina.out -o | egrep "[^]/]+.jar" -o | sort | uniq | sed -e 's/.jar/.jar,\\/g' > skips.txt

도움이되기를 바랍니다.


Tomcat이 모든 Jar에서 TLD (Tagging Library Definitions)를 스캔하기 때문에 경고가 표시됩니다.

1 단계 :이 경고를 발생시키는 JAR을 확인하려면 다음 줄을 tomcat / conf / logging.properties에 삽입합니다.

org.apache.jasper.servlet.TldScanner.level = FINE

이제 어떤 JAR이 초기 경고를 유발하는지에 대한 세부 정보와 함께 경고를 볼 수 있습니다.

Step2 스캔 중에 불필요한 JAR을 건너 뛰면 시작 시간과 JSP 컴파일 시간이 향상 될 수 있으므로 파일에서 불필요한 JAR을 건너 뜁니다 catalina.properties. 여기에는 두 가지 옵션이 있습니다.

  1. 아래의 모든 JAR을 나열합니다 tomcat.util.scan.StandardJarScanFilter.jarsToSkip. 그러나 항아리가 많거나 항아리가 계속 바뀌면 번거로울 수 있습니다.
  2. 또는 삽입 tomcat.util.scan.StandardJarScanFilter.jarsToSkip=*하여 모든 병을 건너 뜁니다.

이제 위의 경고가 표시되지 않아야하며 애플리케이션이 상당히 큰 경우 애플리케이션을 배포하는 데 상당한 시간을 절약 할 수 있습니다.

참고 : Tomcat8에서 테스트 됨


이 줄의 주석 처리 제거 ( /conf/logging.properties)

org.apache.jasper.compiler.TldLocationsCache.level = FINE

바람둥이 7.0.53 에서 나를 위해 일해 !


Tomcat 8의 경우 Tomcat이 스캔 한 jar를 방지하기 위해 catalina.properties에 다음 줄을 추가해야했습니다.

tomcat.util.scan.StandardJarScanFilter.jarsToSkip=jsp-api.jar,servlet-api.jar

위의 어느 것도 나를 위해 일하지 않았습니다 (tomcat 7.0.62) ... Sensei_Shoh가 지적했듯이 메시지 위의 클래스를보고 logging.properties에 추가하십시오. 내 로그는 다음과 같습니다.

Jan 18, 2016 8:44:21 PM org.apache.catalina.startup.TldConfig execute
INFO: 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.

그래서 추가했습니다

org.apache.catalina.startup.TldConfig.level = FINE

conf / logging.properties에서

그 후 나는 너무 많은 "불쾌감을주는"파일을 얻었고, 그것들을 건너 뛰는 것을 귀찮게하지 않았다 (또한 일반 로깅으로 되 돌렸다 ...)


오류 메시지는 사용중인 로거를 나타내므로 해당 로거를 설정하십시오 .level.

[jasper] Jul 31, 2012 7:15:15 PM org.apache.jasper.compiler.TldLocationsCache tldScanJar

따라서 로거는 org.apache.jasper.compiler.TldLocationsCache. 당신에 logging.properties파일이 줄을 추가합니다 :

org.apache.jasper.compiler.TldLocationsCache.level = FINE

로그의 추가 항목이 귀찮지 만 시작 시간의 추가 1 초가 필요하지 않은 경우 다음을 추가 logging.properties하고 잊어 버리십시오.

org.apache.jasper.servlet.TldScanner.level = WARNING

참조 URL : https://stackoverflow.com/questions/14375673/how-to-fix-jsp-compiler-warning-one-jar-was-scanned-for-tlds-yet-contained-no-t

반응형