[spring boot] 배포 패키지 변경 jar -> war

현상

VSCode 에서 자바 스프링 프로젝트 생성 후 배포시 jar 로 생성되길래 war로 변경하여 배포하면 페이지가 나오지 않음.

수정

1. pom.xml 에 packaging 을 war로 변경

<groupId>com.example</groupId>
<artifactId>maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

2. ServletInitializer.java 파일 생성

  2-1. 파일 생성 위치 : 스프링부트 생성시 존재하는 기본 java 파일 (ex. DemoApplication.java) 동일

  2-2. ServletInitializer.java

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DemoApplication.class);
    }

}

3. 빌드

> ./mvn clean
> ./mvn package

4. 배포

target 폴더 안에 있는 .war 파일을 서버 webapp 폴더로 복사 후 tomcat restart

원인

Because Spring WebFlux does not strictly depend on the Servlet API and applications are deployed by default on an embedded Reactor Netty server, War deployment is not supported for WebFlux applications.

Spring WebFlux는 서블릿 API에 엄격하게 의존하지 않으며 애플리케이션은 기본적으로 임베디드 Reactor Netty 서버에 배치되므로 War 배치는 WebFlux 애플리케이션에 지원되지 않습니다.

공부가 부족해서인지.. 이해를 못하겠다. 대충 war 은 servlet 포함해서 배포하지 않는다. 는 것 같다!!! ㅠㅠ

참조사이트

-jar 에서 war 로 설정 변경 : https://hue9010.github.io/spring/springboot-war/

- https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-create-a-deployable-war-file

-배포환경 나누기 : https://yookeun.github.io/java/2017/04/08/springboot-deploy/

'BACK > Java & JSP' 카테고리의 다른 글

JSP 기본 게시판 만들기  (0) 2020.04.19