pom.xml
파일 수정<packaging>
부분에 war
로 값 변경spring-boot-starter-tomcat
dependency 추가pom.xml
수정 후에도 오류 발생 시 2-1.
참고 <!-- 2022.08.26 Spring Boot War 배포를 위함 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
main()
이 있는 Class를 선택)package
입력 후 Apply 및 RunC:\Users\Ynjch\egovSample\sample\target
폴더에 war 파일 생성된 것 확인/home/egov/tomcat/tomcat-9.0/webapps
에 war 파일 업로드server.xml
에 설정한 폴더 이름과 동일한 파일명으로 변경해주어야 함 > sample.war
egov@egov-server:/$ sudo ufw allow 22
egov@egov-server:/$ sudo ufw allow 8080
egov@egov-server:~/tomcat/tomcat-9.0/webapps$ ls –al
egov@egov-server:~/tomcat/tomcat-9.0/webapps$ sudo chmod -R 777 /home/egov/tomcat
# Tomcat 실행 및 중지
egov@egov-server:~/tomcat/tomcat-9.0/bin$ cd /home/egov/tomcat/tomcat-9.0/bin
egov@egov-server:~/tomcat/tomcat-9.0/bin$ ./startup.sh
egov@egov-server:~/tomcat/tomcat-9.0/bin$ ./shutdown.sh
# WAR 파일 및 프로젝트 폴더 위치
egov@egov-server:~$ cd /home/egov/tomcat/tomcat-9.0/webapps
# 하위 디렉토리 포함 권한 변경
egov@egov-server:~$ sudo chmod -R 777 /home/egov/tomcat
# 파일 및 디렉토리 삭제
egov@egov-server:/home/egov/tomcat/tomcat-9.0/webapps$ sudo rm -rf sample/
# server.xml 수정
egov@egov-server:/home/egov/tomcat/tomcat-9.0$ sudo vi conf/server.xml
# Log 확인
egov@egov-server:~/tomcat/tomcat-9.0/logs$ cd /home/egov/tomcat/tomcat-9.0/logs
egov@egov-server:~/tomcat/tomcat-9.0/logs$ tail -f catalina.out
# Tomcat 떠있는지 확인
egov@egov-server:~/tomcat/tomcat-9.0/bin$ ps –ef | grep tomcat
# globals.properties 파일 수정
egov@egov-server:~/tomcat/tomcat-9.0/webapps/sample$ cd WEB-INF/classes/egovframework/egovProps/
egov@egov-server:~/tomcat/tomcat-9.0/webapps/sample/WEB-INF/classes/egovframework/egovProps$ vi globals.properties
/home/egov/tomcat/tomcat-9.0/webapps
에 sample.war
파일 업로드 된 것 확인ps -ef | grep tomcat
확인/home/egov/tomcat/tomcat-9.0/webapps
에 sample 폴더 및 하위 폴더들이 생성되었는지 확인globals.properties
파일의 DB 설정 내용 아래와 같이 수정 (IP 주소 및 DB 연결 정보 변경)pom.xml
파일 위치 찾기 (해당 디렉토리와 하위 디렉토리에서 검색됨)egov@egov-server:~/tomcat/tomcat-9.0/webapps/sample$ find -name pom.xml
./META-INF/maven/org.egovframe.template/simpleHomePage/pom.xml
pom.xml
이 존재하는 디렉토리로 이동하여 Maven Clean 실행egov@egov-server:~/tomcat/tomcat-9.0/webapps/sample$ cd META-INF/maven/org.egovframe.template/simpleHomePage
egov@egov-server:~/tomcat/tomcat-9.0/webapps/sample/META-INF/maven/org.egovframe.template/simpleHomePage$ mvn clean package -Dmaven.test.skip=true
/home/egov/.m2/repository
에 생성되는 폴더 목록 확인catalina.out
파일 로그 확인catalina.out
파일 확인 결과 startup.sh
실행 후 오류 발생 시, pom.xml
에 아래 내용 추가 29-Aug-2022 02:47:42.563 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
javax.servlet.ServletException: Failed to instantiate WebApplicationInitializer class
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:160)
Caused by: java.lang.ExceptionInInitializerError
Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
29-Aug-2022 02:47:44.358 SEVERE [main] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing
spring-boot-starter-web
부분 수정 > Maven build... > war 파일 재추출<exclusions>
부분 추가하였음 <!-- spring boot dependency start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 2022.08.26 Spring Boot War 배포를 위함 - slf4j multi binding 오류 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
./bashrc
파일에 등록하여 사용egov@egov-server:/$ cd /home/egov
egov@egov-server:~$ ls -al
egov@egov-server:~$ vi ~/.bashrc
alias tstart='/home/egov/tomcat/tomcat-9.0/bin/startup.sh'
alias tstop='/home/egov/tomcat/tomcat-9.0/bin/shutdown.sh'
alias tlogdir='cd /home/egov/tomcat/tomcat-9.0/logs'
alias tlog='tail -f catalina.out'
alias spropdir='cd cd /home/egov/tomcat/tomcat-9.0/webapps/sample/WEB-INF/classes/egovframework/egovProps/'
alias spomdir='cd /home/egov/tomcat/tomcat-9.0/webapps/sample/META-INF/maven/org.egovframe.template/simpleHomePage/'
egov@egov-server:~$ source ~/.bashrc