«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
09-21 13:21
관리 메뉴

DevTzu

[Spring boot] AWS Tomcat에 war 배포시 404 에러 본문

study

[Spring boot] AWS Tomcat에 war 배포시 404 에러

DevTzu 2020. 1. 6. 14:18
반응형

간단한 스프링부트(Spring boot) 프로젝트 생성 후 AWS에 배포 중 404 에러 발생함

 

이유를 찾던 중 Main 클래스에 SpringBootServletInitializer를 상속받지 않는 문제였음

 

package com.myhome;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {

	public static void main(final String[] args) {
		SpringApplication.run(MyApplication.class, args);
	}

}

 

아래와 같이 SpringBootServletInitializer를 상속받고 SpringApplicationBuilder 오버라이딩 해주면 문제 해결

 

package com.myhome;

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

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(MyApplication.class);
	}
	
	public static void main(final String[] args) {
		SpringApplication.run(MyApplication.class, args);
	}

}

 


구체적인 설명은 구글링으로 가져옴..


일반적인 Spring Framework에서는 Web.xml에 DispatcherServlet을 등록하는 작업이 필요

Servlet 3.0에서는 web.xml이 없이도 배포가 가능 해졌는데 Apache Tomcat 7부터 지원

web.xml의 역할을 WebApplicationinitializer 인터페이스를 구현하여 프로그래밍으로 ServletContext를 구현할 수 있도록 바뀐것

SpringBootServletInitializer는 WebApplicationinitializer의 구현체

SpringBootServletInitializer를 이용하여 WebApplicationContext를 생성하여 Servlet Context에 추가

프로젝트에 web.xml도 없었고, WebApplicationinitializer를 구현한 SpringBootServletInitializer도 없었기 때문에 Tomcat에서 URL의 요청을 받아드릴수가 없었던 것

SpringBootServletInitializer를 상속 한다는건 결국 Tomcat과 같은 Servlet Container 환경에서 Spring Boot Application을 동작 가능 하도록 Web Application Context를 구성한다는 의미


 

반응형

'study' 카테고리의 다른 글

java.sql.SQLSyntaxErrorException: Table '' doesn't exist  (0) 2022.03.14
JAVA - java.net.UnknownHostException  (0) 2022.03.11
Spring Slf4j logback - DBAppender  (1) 2019.02.27
[C to Go] 1. Hello World  (0) 2019.01.07
[C to Go] 0. 학습목표  (0) 2019.01.07
Comments