톰캣 lib 실행 순서 (4)
- JSP
- 2019. 2. 24. 16:26
이전 포스팅에서 톰캣의 lib 실행순서를
직접 확인했다. 첫 번째로
.class 파일을 읽고
두 번째로 WEB-INF/lib
세 번째로 tomcat/lib 를 읽었다.
사실 이 lib 실행순서는 톰캣 문서에 적혀 있다.
나는 톰캣7을 사용했으니 톰캣7문서를 읽어보겠다.
톰캣문서 : (https://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html)
톰캣은 클래스나 리소스를 로딩할때 아래의 순서로
로딩한다고 적혀있다. 이전 포스팅에서 테스트했던 순서이다.
<Loader delegate="true"/>를 사용하면
순서가 바뀌는데 한번 사용해보자.
먼저 위에서 바뀌는 실행순서를 보면
기존에는 WEB-INF/lib 가 먼저 로딩됬지만
tomcat/lib 가 먼저 로딩되는것으로 순서가 바뀌게 된다.
WEB-INF/lib에는 first.jar를 넣고
tomcat/lib 에는 second.jar를 넣고 준비를해보자.
이제 <Loader delegate="true"/>를 사용해보자.
아래의 경로에서 context.xml을 수정하면된다.
<Context> 안에 <Loader delegate="true"/>를 추가해주면 된다.
다음 실행을 해보면 second getMessage~~!!가 출력된다.
<Loader delegate="true"/>를 사용하지 않았을때는
WEB-INF/lib 가 먼저 로딩되어 first getMessage~~!! 가
출력되었지만 <Loader delegate="true"/>를 사용하여
실행순서가 바뀌어 tomcat/lib가 먼저 로딩되어
second getMessage~~!!가 출력된것이다.
마지막으로 톰캣 문서에있는 endorsed 에 대해 알아보자.
대충 읽어보니 자바9까지 지원되는것 같다
endorsed 폴더를 생성해 lib를 넣으면 가장 먼저
로딩된다고 설명되어있는것 같다.
아래경로에 endorsed 폴더를 생성해주고
third.jar 파일을 넣어주자
그리고 WEB-INF/lib 에 first.jar
tomcat/lib 에 second.jar를 같이 넣어주도록 하자.
그리고 실행시켜보면 third getMessage~~!!가 출력되게된다.
classes 폴더에 .class를 넣어줘도 endorsed폴더의 lib가
가장 먼저 로딩되게된다.
'JSP' 카테고리의 다른 글
톰캣 lib 실행 순서 (3) (0) | 2019.02.24 |
---|---|
톰캣 lib 실행 순서 (2) (0) | 2019.02.24 |
톰캣 lib 실행 순서 (1) (0) | 2019.02.24 |
JSP Servlet 페이징 구현하기(2) JSP + Oracle (2) | 2018.11.11 |
JSP Servlet 페이징 구현하기(1) JSP + Oracle (0) | 2018.11.10 |