728x90
반응형
1. Spring Framework 실행순서
2. Log명 도식화
구분 | 프로세스 | 파일명 | 실제 LOG |
Tomcat 서버 가동시 |
Apache 실행 | commons-daemon.log | Apache Commons Daemon procrun (1.2.4.0 64-bit) started. |
Tomcat 실행 및 server.xml 로딩 | [info] ( prunsrv.c:1325) [ 5740] Starting service... | ||
프로토콜 핸들러 초기화 | catalina.log | [main] org.apache.coyote.AbstractProtocol.init 프로토콜 핸들러 ["http-nio-7080"]을(를) 초기화합니다. | |
[main] org.apache.coyote.AbstractProtocol.init 프로토콜 핸들러 ["ajp-nio-127.0.0.1-7009"]을(를) 초기화합니다. | |||
엔진가동 | [main] org.apache.catalina.core.StandardEngine.startInternal 서버 엔진을 시작합니다: [Apache Tomcat/8.5.70] | ||
ROOT (WAR 파일) 배치 | 정보 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR 웹 애플리케이션 아카이브 [C:\Tomcat\apache-tomcat-8.5.70\webapps\ROOT.war]을(를) 배치합니다. | ||
JAR 파일 불러오기 (초기화 > Start) | [org.apache.catalina.webresources.JarResourceSet@6e4827fd]을(를) 위한 상태를 [INITIALIZING](으)로 설정합니다. | ||
Java API 실행 | [WebappLoader[]]을(를) 위한 상태를 [STARTING](으)로 설정합니다. | ||
ROOT 폴더 생성되며 web.xml 로딩 | Root(WAR 파일) 서버내 setup 완료 | ||
contextLoaderListner 생성 | web.xml | <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> |
|
root-context.xml 로딩 | <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring/applicationContext*.xml</param-value> </context-param> |
||
bean으로 등록된 클래스 생성 (bean 설정) | root-context.xml (applicationContext.xml) |
root-context.xml <context:component-scan base-package="egovframework,teleweb,telewebinside,chestlove"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> |
|
실행 완료 | [main] org.apache.catalina.startup.Catalina.start Server startup in 17527 ms | ||
클라이언트 요청시 | 디스패처 서블릿 생성 | 실제 요청이 들어가야 객체가 할당이 되는 것이기 때문에 로그상에는 없을 수 있지만, 이를 확인하기 위해서는 java Monitoring & Management Console라는 프로그램을 사용하면 된다. | |
servlet.context.xml 로딩되며 controller 서블릿 생성 | |||
Tomcat 서버 종료시 |
프로토콜 핸들러 일시정지 및 Catalina 중지 | catalina.log | [Thread-7] org.apache.catalina.core.StandardService.stopInternal 서비스 [Catalina]을(를) 중지시킵니다. |
Bean 종료 (STOPPED > DESTROYED) | java.lang.Thread.sleep(Native Method) | ||
JDK내 JDBC 드라이버 등록 제거 | [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc 웹 애플리케이션 [ROOT]이(가) JDBC 드라이버 [net.sf.log4jdbc.DriverSpy]을(를) 등록했지만, 웹 애플리케이션이 중지될 때, 해당 JDBC 드라이버의 등록을 제거하지 못했습니다. 메모리 누수를 방지하기 위하여, 등록을 강제로 제거했습니다. |
||
API STOPPED |
[localhost-startStop-2] org.apache.catalina.util.LifecycleBase.setStateInternal [org.apache.catalina.authenticator.FormAuthenticator[/examples]]을(를) 위한 상태를 [STOPPED](으)로 설정합니다. | ||
API DESTROYED - Wrapper, Session, 리소스(util), 파일압축(deploy) |
[Thread-7] org.apache.catalina.util.LifecycleBase.setStateInternal [org.apache.catalina.authenticator.FormAuthenticator[Container is null]]을(를) 위한 상태를 [DESTROYED](으)로 설정합니다. | ||
JAR 파일 STOPPED | [localhost-startStop-2] org.apache.catalina.util.LifecycleBase.setStateInternal [org.apache.catalina.webresources.JarResourceSet@5357d1d8]을(를) 위한 상태를 [STOPPED](으)로 설정합니다. | ||
JAR 파일 DESTROYED | [localhost-startStop-2] org.apache.catalina.util.LifecycleBase.setStateInternal [org.apache.catalina.authenticator.FormAuthenticator[/examples]]을(를) 위한 상태를 [STOPPED](으)로 설정합니다. | ||
프로토콜 핸들러 및 커넥터 중지, 소멸 | [Thread-7] org.apache.coyote.AbstractProtocol.destroy 프로토콜 핸들러 ["ajp-nio-127.0.0.1-7009"]을(를) 소멸시킵니다. | ||
엔진 DESTROYED | [Thread-7] org.apache.catalina.util.LifecycleBase.setStateInternal [Pipeline[StandardEngine[Catalina]]]을(를) 위한 상태를 [DESTROYED](으)로 설정합니다. | ||
Tomcat 종료 | [Thread-7] org.apache.catalina.util.LifecycleBase.setStateInternal [StandardServer7005]을(를) 위한 상태를 [DESTROYED](으)로 설정합니다. |
3. 참고사이트
[블로그] 웹서버 구동 및 종료와 서블릿의 라이프사이클
[블로그] Tomcat Log 파일 종류
[블로그] Server.xml 설명
728x90
반응형
'📌 Back End > └ Spring' 카테고리의 다른 글
[Spring] 소프트웨어 배포 생명 주기 (software release life cycle) (0) | 2023.07.19 |
---|---|
[Spring] Thymeleaf(타임리프)란? (+기본적인 사용법) (1) | 2023.03.16 |
[Spring] 스프링 프로젝트 폴더 빨간색 느낌표(pom.xml) (0) | 2023.03.16 |
[Spring] Spring Framework / STS(Spring Tool Suite) 개념 정리 (0) | 2023.03.16 |
[Spring] MyBatis에서 CDATA사용법 (0) | 2023.03.10 |