Intellij jsp/서블릿 파일 실행 시 발생하는http 404 혹은 500 에러의 원인과 해결방법

 1. 작업 환경

 2. Intellij에서 jsp/servlet 파일 실행 시 404,500 에러의 원인

 3. 해결 방법


1. 작업 환경

  • Intellij idea 얼티밋 2022.3 / 한글패치 적용
  • win 11
  • java ee 8
  • tomcat 9


  • 2. 인텔리제이에서 jsp 혹은 서블릿 파일 실행 시, 404 혹은 500에러가 발생하는 이유

    jsp / servlet 등으로 구성된 묘듈을 tomcat에서 실행 시 서버 측에서 500에러 (내부 서버 에러) 를 발생시기는 경우가 있다.

    500에러의 경우, 인텔리제이에서 세팅된 JAVA EE버전과 톰켓의 버전이 달라 발생하는 문제로 이후 설명할 해결 방법을 통해 문제 해결이 가능하다.

     

  • 버전 불일치로 발생하는 500에러의 예: java ee버전은 8이지만 톰켓의 버전이 10일인 경우, 아래와 같은 오류가 발생한다.



  • 반대로 404에러의 경우, tomcat설정 중, 프로젝트 jre가 설정되어 있지 않으면 발생한다.
  •      





    아래와 같이 인텔리제이에서 jsp프로젝트 실행 시, 404 오류가 표시된다면 서버->tomcat->jre 값 설정이 'sdk 없음' 혹은 비어 있는 상태인지 확인해 보자.

    다른 곳에서는 출력 경로 (예: /output) 등을 '/' 을 제외하고 모두 지우라고 하는데, 그걸로는 해결이 되지 않아 아래와 같은 방법으로 문제를 해결하였다.



    3. 해결방법


    1. 먼저, 서버->tomcat->tomcat버전을 10.0버전에서 9.0대로 내린다. 톰켓 버전과 java ee버전이 일치하지 않으면 서버 측에서 서블릿을 출력하지 못하기 때문이다. java ee 8버전의 경우, tomcat 9 버전과 호환된다. 참고로, 이 외의 톰캣 버전을 사용하기 위해서는 해당 tomcat과 호환되는 자바 ee (jakarta)를 설치해야 한다.


  • tomcat 10을

  • tomcat9으로 내린다.
     


  • 서버 버전을 다운그래이드 하였다면, 다시 프로젝트를 실행해 보자. 정상적으로 페이지가 표시될 것이다.