별생각 없이.. 테스트 용, spring boot 웹 어플리케이션 하나 만들었는데, pc 에 설치 된 tomcat 에서 실행이 안되어, 반나절을 이것 저것 해봤는데.. 절대, tomcat 문제도 아니고 spring 어플리케이션 내, 오류도 아니였다.
버전 문제였음.
- spring boot 3.3.10
- apache-tomcat-9.0.104-windows-x64
별별 설정을 다 찾아 봤는데.. 마지막으로 혹시나 하는 마음에 ChatGPT 에게 물어보니.. ㅠㅠ...
💥 문제 원인: Spring Boot 3.x 는 Jakarta EE 10 기반, 하지만 Tomcat 9.x 는 Jakarta EE 8까지만 지원
✳️ Spring Boot 3.x → Jakarta EE 10 기반
Spring Boot 3.0부터는 기존 javax.* 패키지를 버리고 → jakarta.* 네임스페이스로 완전히 전환되었습니다.
❌ Tomcat 9.x → Jakarta EE 8까지만 지원
Tomcat 9.x는 javax.servlet.*, javax.el.*, javax.websocket.* 등 이전 네임스페이스 기반이고,
Spring Boot 3.x에서 생성된 WAR 파일을 실행하면 서블릿 API 호환 오류가 발생하거나
애플리케이션이 아예 실행되지 않는 경우가 발생합니다.
✅ 해결 방법 2가지
▶️ 방법 1: Tomcat 10.1+ 설치 (권장)
Tomcat 10.1부터 Jakarta EE 10을 공식 지원하므로 Spring Boot 3.x WAR 파일을 정상적으로 실행할 수 있습니다.
- Tomcat 10.1 다운로드
- 설치 후, 기존 ROOT.war 넣고 실행하면 바로 접속 가능해야 합니다.
Tomcat 10.0은 변환 브릿지 버전이라 10.1 이상을 추천드립니다.
▶️ 방법 2: Spring Boot 버전을 2.7.x로 다운그레이드 (비추천)
- Spring Boot 2.7.x는 javax.* 기반이므로 Tomcat 9.x에서 호환됩니다.
- 하지만 최신 기능과 보안 패치를 놓치게 되므로 권장하지 않아요.
📌 결론
Spring Boot 3.3.10 + Tomcat 9.x = ❌ 호환 불가
Spring Boot 3.3.10 + Tomcat 10.1.x = ✅ 정상 작동
나의 선택은 Tomcat upgrade..10.1 ... 업그레이드 하자마자.. hello 아흑..
'초짜 IT보이 서바이벌 스토리' 카테고리의 다른 글
#Jenkins #Pipeline - #Slack #Notification #설정 및 #sample (0) | 2025.02.11 |
---|---|
2025 년 #가트너 (#Gartner) 에서 발표한 10가지 주요 전략 기술 트렌드 (2) | 2024.12.09 |
2024 년 #가트너 (#Gartner) 에서 발표한 10가지 주요 전략 기술 트렌드 (1) | 2024.02.07 |
사내 메신저 사용의 모범사례 - Best Practices for Instant Messaging at Work (0) | 2023.06.21 |
#Jenkins #Scheduler #Chrontab #Setting (0) | 2023.04.25 |