프로젝트 우클릭 -> Export -> Web -> War File
파일 생성할 경로 입력 -> Export source files 체크 (Optional, .java 파일까지 만들고 싶은 경우에만) -> Finish
web.xml이 없는 스프링부트를 외부 Tomcat에서 실행하기 위해서는 WebApplicationInitializer 인터페이스를 구현한 SpringBootServletInitializer를 상속받아야 된다.
Goals에 package 쓰고 Run
Build 성공하면 BUILD SUCCESS와 war 파일이 설치된 경로를 확인할 수 있다.
./shutdown.sh
/usr/local/dev/tomcat8.5/webapps
./startup.sh
1. server.xml 안에 초기값이 제대로 되어 있는지 확인해야 한다.
autoDeploy 옵션이 true, appBase가 webapps인 경우 톰캣 구동 시 war 파일을 자동으로 읽어서 배포.
unPackWARs가 true인 경우는 war파일을 압축 해제.
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
2. host 아래에 context 추가
지정된 appBase의 파일을 디플로이 시키고자 하면 위 Host 내부에 아래와 같이 정의
<Context docBase="zikapi_sb" path="/" reloadable="true" />
3. tomcat 서버 재시작
port 설정이 잘되어 있는지 확인,
디렉토리 권한 설정이 잘되어 있는지 확인,
톰캣 실행 배포를 root 유저로 하지는 않았는지 확인