웹호스팅에 올리기 위해 JAR 패키지로 생성한 스프링 부트 프로젝트를 WAR로 EXPORT할 필요가 생겨, 이에 대해 정리해보았습니다.
기존 스프링 부트 프로젝트를 WAR 파일로 배포하기 위해서는 다음 두가지 사항을 수행해야합니다. (Maven 기준)
1. pom.xml 설정
2. ServletInitalizer 클래스 생성
만약 두번째 과정을 하지 않는다면 war로 배포할 때 404 에러가 발생하게 됩니다.
<packaging>war</packaging>
위 코드를 pom.xml에 추가한 뒤에 Maven->Update Project를 합니다.
src/main/java 안에 SpringBootServletInitializer를 상속받는 ServletInitializer 클래스를 추가하여 configure를 overide해줍니다.
package com.example.demo;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// TODO Auto-generated method stub
return builder.sources(DemoApplication.class);
}
}
예전에 톰캣으로 잘됐던 프로젝트가 원인을 모른 채 404 에러가 발생할 때가 있었는데요. 다시한번 프로젝트 오른쪽 클릭
-> Maven
-> Update Project
를 해보니 해결이 되었습니다.