현재 버전

여러 시도를 해봐도 진전이 없다면, 이 내용을 한 번 확인해보세요.

환경변수에서 JAVA_HOME이랑 JRE_HOME이 둘 다 있을 경우, Tomcat은 JRE_HOME을 우선해서 바라봅니다.


문제는 JAVA_HOME과 JRE_HOME의 버전이 서로 다를 경우 입니다.

JAVA_HOME의 JAVA 버전이 14, JRE_HOME의 버전이 1.8이라 가정한다면 아래와 같은 현상이 발생합니다.


JAVA_HOME은 JDK의 경로이고, JRE_HOME은 JRE의 경로입니다.

 JDK는 JRE와 달리 JAVA 개발도구로써, JAVA 컴파일이 가능하나, JRE는 컴파일은 불가능하고 컴파일된 class를 실행만 할 수 있습니다.


JAVA class 컴파일 -> JAVA_HOME의 14 버전으로 빌드

Tomcat 구동 -> JRE_HOME의 1.8 버전으로 구동


이렇게 되면, 14버전으로 컴파일된 클래스를 1.8로 구동한 톰캣이 읽을 수가 없어 디플로이에 실패합니다.

톰캣 구동 후 첫 접근 시 500에러가 뜨며, 디플로이에 실패하여 곧바로 404에러가 뜨게 됩니다. 500에러에 버전오류가 명시되어 있으나, 곧바로 의미없는 404 오류가 뜨게 되어 Fiddler나 개발자도구의 네트워크를 자세히 보지 않으면 모릅니다.


질문자분 현상이 꼭 이와 같을 순 없겠으나, 동일한 소스를 빌드하는 과정에서 생긴 일이라고 하시니 참고해보시기 바랍니다.


수정 이력

2021-04-16 09:16:21 에 아래 내용에서 변경 됨 #1

여러 시도를 해봐도 진전이 없다면, 이 내용을 한 번 확인해보세요.

환경변수에서 JAVA_HOME이랑 JRE_HOME이 둘 다 있을 경우, Tomcat은 JRE_HOME을 우선해서 바라봅니다.


문제는 JAVA_HOME과 JRE_HOME의 버전이 서로 다를 경우 입니다.

JAVA_HOME의 JAVA 버전이 14, JRE_HOME의 버전이 1.8이라 가정한다면 아래와 같은 현상이 발생합니다.


JAVA class 컴파일 -> JAVA_HOME의 14 버전으로 빌드

Tomcat 구동 -> JRE_HOME의 1.8 버전으로 빌드


이렇게 되면, 14버전으로 컴파일된 클래스를 1.8로 구동한 톰캣이 읽을 수가 없어 디플로이에 실패합니다.

톰캣 구동 후 첫 접근 시 500에러가 뜨며, 디플로이에 실패하여 곧바로 404에러가 뜨게 됩니다. 500에러에 버전오류가 명시되어 있으나, 곧바로 의미없는 404 오류가 뜨게 되어 Fiddler나 개발자도구의 네트워크를 자세히 보지 않으면 모릅니다.


질문자분 현상이 꼭 이와 같을 순 없겠으나, 동일한 소스를 빌드하는 과정에서 생긴 일이라고 하시니 참고해보시기 바랍니다.