0. 들어가기
회사에서 내가 개발한 자바 코드를 개발서버에 반영하고 다시 켰는데 서버가 켜지질 않는다!
서버를 아무리 껐다 켜도 제우스 서버가 RUNNING이 아닌, STANBY 상태였다.
0.1 JEUS STANBY?
stanby 상태란 시작 중에 등록된 애플리케이션을 Distribute하던 중 실패한 것이 있어 RUNNING 상태로 이동하지 못하고 머무르는 상태를 나타낸다.
이 상태에서 문제의 모듈을 수정하여 다시 시작를 하거나, 그 모듈을 무시하고 서비스를 하기 위해서는 force 옵션을 주고 start 명령을 수행할 수 있다.
내 코드를 반영한 후 나온 문제기에, 문제의 모듈을 찾아서 해결하기로 했다.
1. 로그를 확인하자
제우스 로그에서 해당 서버 로그를 찾아 확인해 본 결과
Caused by: java.lang.UnsupportedClassVersionError: egovframework/이후생략 : Unsupported major.minor version 52.0
라는 메시지를 확인할 수 있었다.
2. Unsupported major.minor version 52.0
버전이 지원되지 않는다고?
구글링을 해 보니 바로 알 수 있었다.
Java version 52.0 버전에서 컴파일하고 실행 환경은 그 미만의 버전일 때 해당 오류가 발생한다.
자바는 하위호환성이 있어서 자바7로 만든 프로그램을 자바8로 돌릴 수 있다. 다만, 역으로 자바8로 만든 프로그램은 자바7에서 돌릴 수 없다.
오류에서 나오는 version 뒤 숫자는 자바 버전을 나타내는데, 52.0의 경우 J2SE 8이다.
우리 프로그램은 자바7이었다가, 이번에 자바8로 바꾸기로 하여 로컬 환경을 먼저 바꿔놨는데, 자바8인채로 컴파일을 하고 자바7인 개발서버에 올려서 난 오류였다.
2.1 자바 버전 바꾸기
자바 버전은 이클립스 기준
프로젝트 우클릭 > properties > Java Build Path > Libraries > JRE 클릭하고 Edit > JavaSE-1.7(필요한 버전)으로 바꾸고 적용한다.
properties > Java Compiler에서 혹시 다르게 설정되어있는지 한번 더 확인한다.
Use compliance from execution environment 'JavaSE-1.7' on the 'Java Build Path'를 체크하면 Build Path와 맞춰진다.
2.1 에러 버전별 JDK 버전
J2SE 8 = Version 52
J2SE 7 = Version 51
J2SE 6.0 = Version 50
J2SE 5.0 = Version 49
JDK 1.4 = Version 48
JDK 1.3 = Version 47
JDK 1.2 = Version 46
JDK 1.1 = Version 45
마무리
대부분의 에러는 메시지를 찬찬히 읽어보면 해결이 가능하다. 제우스 로그 확인하자!
취업하고 바쁘게 살다 오랜만에 글을 쓰니 글의 구조가 엉망이다.
그래도 시간 난 김에 글쓰기 클리어!
참고
MS Container Status
https://pushstonez.tistory.com/42
[JEUS] MS Container Status
SHUTDOWN 시작되지 않은 상태 또는 정상 종료된 상태를 나타낸다. STARTING 서버를 시작하는 중으로 아직 서비스는 할 수 없는 상태를 나타낸다. STANDBY 시작 중에 등록된 애플리케이션을 Distribute하던
pushstonez.tistory.com
[Java] Unsupported major.minor version 52.0 오류 / 해결
[Java] Unsupported major.minor version 52.0 오류 / 해결
Java Exception : Unsupported major.minor version 52.0 에러 내용 Java Version 52.0 (JDK 8.0) 버전에서 컴파일하고 이하 버전에서 실행할때 발생 에러 Version 별 JDK 버전 Version 뒤에 숫자는 아래와 같은 버전을 의미
dwfox.tistory.com