오늘은 어렵사리 스프링부트 프로젝트에 jsp를 적용했습니다.
로컬에서 테스트를 해보고 aws에 올렸는데,
로컬에서는 되던게 aws에서는 안되는것입니다.
코딩한것에서는 오류가 없었는데 컨트롤러에 연결되는 jsp파일을 찾지 못하는 오류가 발생합니다.
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Mon Aug 10 04:07:03 UTC 2020
There was an unexpected error (type=Not Found, status=404).
/WEB-INF/views/index.jsp
검색해보니 이런저런 방법들이 많이 나와있던데,
저같은 경우에는 jar패키징을 war로 변경해서 해결했습니다.
- 클래스가 찾는 뷰파일의 위치 확인,
- 프로젝트가 빌드될때 war로 빌드되게 변경
- war패키지 안에 jsp파일이 잘 들어있는지 확인
하면 됩니다.
1. build.gradle 파일에 war설정
plugins {
id 'war' // 추가
}
apply plugin: 'war' // 추가
bootWar {
archiveBaseName="springboot" // 추가
archiveVersion="1.0.0-SNAPSHOT" // 추가
}
2. 로컬에서 실행시
그래들 싱크 > gradle 탭에서 bootWar 실행 > 어플리케이션 실행
3. AWS EC2에서 실행시
cd 프로젝트디렉토리
./gradlew bootwar
nohup java -jar ./build/libs/스냅샷파일.war &
EX: 스프링부트에 JSP사용 설정시, 파일 위치