반응형

별생각 없이.. 테스트 용, spring boot 웹 어플리케이션 하나 만들었는데, pc 에 설치 된 tomcat 에서 실행이 안되어, 반나절을 이것 저것 해봤는데.. 절대, tomcat 문제도 아니고 spring 어플리케이션 내, 오류도 아니였다.

버전 문제였음.

  1. spring boot 3.3.10
  2. 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.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 아흑..

반응형

+ Recent posts