본문 바로가기
Spring

[Spring Boot] JAR 빌드 후 실행 시 초기화면 404 오류(index.html 관련)

by 김수호님 2024. 11. 28.
728x90
반응형

 

 

Spring Boot + React 웹 프로젝트를 빌드해서 실행하려고 하는데 초기화면이 뜨지 않고 404(Not Found) 오류가 발생했다.

백엔드와 프론트엔드를 각각 실행(개발 단계) 할 때에는 정상 동작했지만 배포단계에서는 오류가 발생해서 구글링 하다가 아래 링크한 블로그를 참조하여 해결할 수 있었다. 

 

참고: https://puzzle-making.tistory.com/289

 

spring boot - react 프로젝트 빌드하기 (index.html을 못찾는 문제 해결)

https://velog.io/@u-nij/Spring-Boot-React.js-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%B8%ED%8C%85 Spring Boot + React.js 개발환경 연동하기 Spring Boot와 React.js를 연동해 개발환경을 만들고, 빌드해서 jar 파일로까지 만들어

puzzle-making.tistory.com

 

 

 

1. 원인 분석

 

 - 백엔드(Spring Boot)와 프론트엔드(React)를 각각 띄워서 실행하면 정상 동작함

 

 - Gradle Build(Spring Boot + React)를 한 후 생성된 JAR 파일을 "java -jar 파일명.jar" 명령어로 실행하면 404 오류 발생함

 

 - 기본적인 프로젝트에 Spring Security가 추가되어 있어서 이쪽 부분에 문제가 있는 것으로 예상됨

 

 

2. 해결 방법 조사

 

 - Gradle Build 명령어부터 React 설정 관련 내용을 순차적으로 조사함 (혹시 내가 잘못 설정한 값들이 있나 해서.. 그런 적이 많음;;)

 

 - Spring Security를 제외한 시작 프로젝트를 다시 만들어서 Build하고 실행해 봄

 

 - 정상 동작하는 것을 확인하고 Spring Security 관련 설정을 조사하여 해결함

 

 

3. 적용

 - CORS를 처리하기 위해 만든 WebMvcConfig.java 안에 EnableWebMvc라는 어노테이션으로 인해 발생한 이슈였다.

( CORS : Cross Origin Resource Sharing(교차 출처 리소스 공유)의 약자로, 서로 다른 출처(url, port, domain)에 있는 웹 페이지나 서버가 서로의 자원에 접근할 수 있도록 허용하는 보안 메커니즘으로 기본적으로 막혀있다.)

 

 - @EnableWebMvc를 주석한 후 정상 동작함을 확인했다.

 (`@EnableWebMvc`을 사용하면 Spring Boot의 Web MVC 자동설정이 이루어지지 않는다.  그래서 Controller로 설정한 API가 아닌 요청을 Static Resource에서 찾는 것을 수행하지 않은 것이다.

 

 

마무리

- 이전에도 구글링을 통해 찾은 소스를 별 생각 없이 복사해서 사용한 것이 문제가 되었다. 항상 모든 내용을 찾아볼 수는 없겠지만 기본적인 것들은 가져가서 사용하기 전에 내용을 파악해야 함을 다시 한번 느꼈다..ㅠㅠ

728x90
반응형

'Spring' 카테고리의 다른 글

[Spring Boot] JPA Entity에 현재 시간 적용 방법  (0) 2024.12.29
[Spring] Jwt 인증 적용 예제  (1) 2024.12.12
[Java]자바 공부 시작!  (0) 2019.01.05