일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 소스루트설정
- 깃베쉬
- 설치에러
- exception re-throwing
- POST요청
- 인텔리제이
- 빨간파일
- 스프링 mvc프로젝트가 안뜰때
- source root
- 빨간폴더
- chained exception
- mark directory as
- 예외 발생
- getMessage()
- 예외발생
- unchecked예외
- 멀티 catch 블럭
- 포트충돌
- 색상에 따른 상태
- 인텔리제이물음표파일
- 자바클래스가 안보일때
- 사용자 정의 예외
- checked예외
- throw e
- arrays메서드
- mvc project 생성
- 파일을 읽을 수 없을때
- 이클립스
- 예외처리
- printStackTrace()
- Today
- Total
프로그래밍 스티치
적어도 하나의 JAR가 TLD들을 찾기 위해 스캔 되었으나... 본문
INFO: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
이클립스를 하다가 보면 자주 보이는 로그이다. 실행을 하거나 코드를 짜는데 큰 불편함이 없어서 그냥 넘어가는 경우가 대부분이지만 왠지 모르게 신경이 쓰여서 찾아서 해결해 보기로 하였다.
우선 tomcat이 서버문열때 가지고있는 jar들을 하나씩 훑어보면서 혹시 태그 라이브러리 정의 파일(TLD)을 가지고 있는지 스캔을 한다. 이 과정에서 상당한 시간이 소요되니까 부팅시간을 빠르게 하기 위해서 불필요한 JAR는 스캔 대상에서 제외하도록 미리 설정해 두라는 일종의 친절한 알림이라고 한다.
+ JAR란 Java ARchive Files의 줄임말로, 으로서 일종의 자바 프로젝트 압축파일을 의미합니다.
+ TLD란 Tag Library Descriptor의 줄임말로, JSP에서 사용되는 커스텀 태그 나 JSTL 의 태그들에 대한 설정 파일입니다.
그러면 불필요한 JAR스캔 대상은 어떻게 구별하며, 어떻게 설정해야 필요한 JAR파일들만 스캔하여 부팅시간을 빠르게 할 수 있을까?
불필요한 JAR스캔 대상은 어떻게 구별?
톰캣 구동속도에 영향을 주는것은 JAR파일 탐색인데 톰캣은 기본적으로 다음의 두 가지를 위해 JAR파일의 클래스나 자원을 스캔합니다.
1. 특정 애노테이션을 가진 클래스 검색
2. TLD파일
즉, 위 내용과 상관 없는 JAR파일을 스캔 대상에서 제외하면 그만큼 톰캣 구동 속도가 빨라질것입니다.
어떻게 설정해야 필요한 JAR파일들만 스캔할까?
저 위의 로그는 웹 어플리케이션에 포함된 jar 파일을 탐색하는데 해당 jar 파일에 커스텀 태그와 관련된 TLD 파일이 없을 때 발생한다. TLD파일이 없는 JAR파일을 탐색하는것은 시간낭비 이므로 tld파일 검색 대상에서 해당 JAR파일을 제외하면 톰캣 구동시간을 줄일 수 있다.
추가로 웹 어플리케이션과 관련된 애노테이션을 붙인 클래스가 없는 jar 파일을 검색하는 것 역시 톰캣 구동 시간을 느리게 만드므로 이런 jar 파일도 검색 대상에서 제외하면 톰캣 시작 시간을 줄일 수 있다.
이 두 종류의 jar파일을 찾아내기 위해서 아래의 위치에 있는 logging.properties 파일에 TLD관련 로그 레벨을 FINE으로 바꿔줍니다.
# 탐색하는 jar 파일 목록 출력
org.apache.catalina.startup.ContextConfig.level = FINE
# TLD 관련 로그 출력
org.apache.jasper.servlet.TldScanner.level = FINE
해당 부분에 코드를 추가해주고,
이클립스에서는 Servers프로젝트의 catalina.properties파일에 보라색으로 네모쳐진부분을 추가해주면 된다.
rt.jar,\
spring-*.RELEASE.jar
spring-webmvc-*.jar
미세하게 빨라진것일수도있고 아닐수도있습니다.
감사합니다~
'JAVA' 카테고리의 다른 글
인텔리제이 빨간 파일과 폴더 해결방법 (0) | 2022.07.30 |
---|---|
인텔리제이 우클릭 - 생성 - 자바클래스 가 나오지 않을때 (0) | 2022.07.30 |
인텔리제이 환경설정 오류 (0) | 2022.07.30 |
톰캣 포트충돌시 간단한 오류해결방법 Server Tomcat v9.0 Server at localhost failed to start. (0) | 2022.07.30 |
인텔리제이 텍스트파일에 ? 가 뜨면서 읽을 수가 없을때! (0) | 2022.07.28 |