v3.10.0 업그레이드 후 org.slf4j.impl.StaticLoggerBinder 자바버전 오류
- 작성자 :
- 임*화
- 작성일 :
- 2021-05-25 10:40:10
- 조회수 :
- 4,803
- 구분 :
- 개발환경 / 3.10
- 진행상태 :
- 완료
Q
현재 jdk1.7 사용중입니다.
전자정부 프레임워크 v3.9.0 으로 셋팅을해서 실행이 잘 되고 있는 프로젝트에서
pom.xml에서 전자정부 프레임워크 버전만 v3.10.0 으로 바꾸었습니다.
메이븐 clean compile package 도 모두 성공을 했습니다.
그런데, 톰캣을 실행하면 아래와 같은 오류가 나고 있습니다.
아무래도 v3.10.0으로 올라가면서 slf4j 쪽의 버전이 jdk 1.7에서 실행이 안되는거 같은데..
원인이 뭐고 어떻게 처리를 해야 하나요???
ava.lang.UnsupportedClassVersionError: org/slf4j/impl/StaticLoggerBinder : Unsupported major.minor version 52.0 (클래스 [org.slf4j.impl.StaticLoggerBinder]을(를) 로드할 수 없습니다)
=======================================================================================================================================
위와 같은 질문을 드렸습니다. 순번 (14280) 참조..
당연히 말씀 하신대로 StaticLoggerBinder 가 JDK8버전의 클래스를 사용하고 있으니까 위와 같은 에러가 나겠죠..
하지만, 전자정부 프레임워크 v3.10.0 은 jdk1.7 이상 지원한다고 나와 있습니다. 제가 현재 jdk 1.7을 사용하고 있습니다.
egovframework.rte.psl.dataaccess-3.9.0.jar ---> log4j-slf4j-impl-2.11.2.jar
egovframework.rte.psl.dataaccess-3.10.0.jar ---> log4j-slf4j-impl-2.13.0.jar
위와 같이 전자정부프레임워크에서 참조를 하고 있습니다.
log4j-slf4j-impl-2.11.2.jar 는 jdk1.7을 지원하기 때문에 오류가 안나고 있지만...
log4j-slf4j-impl-2.13.0.jar 는 jdk1.8을 지원하기 때문에 오류가 나고 있는걸로 보여집니다.
하지만, 전자정부프레임워크 v3.10.0은 jdk 1.7 이상 지원한다고 되어있는데..
위와 같이 jdk1.8 이상을 지원하는 라이브러리를 사용하면 안되는거 아닌지요???
해결책은 egovframework.rte.psl.dataaccess-3.10.0.jar에서 참조하는 log4j-slf4j-impl 라이브러리 버전을 낮춰야 할거 같은데..
만약, 전자정부프레임워크에서는 낮출 의사가 없다면..
jdk1.7 사용하는 개개인이 pom.xml에서 egovframework.rte.psl.dataaccess-3.10.0.jar 에서 참조하는 log4j-slf4j-impl-2.13.0.jar exclusion하고,
log4j-slf4j-impl-2.11.2.jar 추가하던가 해야 할것 같은데요..
그리고, 전자정부프레임워크 v3.10.0은 jdk 1.8 이상 지원으로 바꾸셔야 할것 같구요..
전자정부 프레임워크 v3.9.0 으로 셋팅을해서 실행이 잘 되고 있는 프로젝트에서
pom.xml에서 전자정부 프레임워크 버전만 v3.10.0 으로 바꾸었습니다.
메이븐 clean compile package 도 모두 성공을 했습니다.
그런데, 톰캣을 실행하면 아래와 같은 오류가 나고 있습니다.
아무래도 v3.10.0으로 올라가면서 slf4j 쪽의 버전이 jdk 1.7에서 실행이 안되는거 같은데..
원인이 뭐고 어떻게 처리를 해야 하나요???
ava.lang.UnsupportedClassVersionError: org/slf4j/impl/StaticLoggerBinder : Unsupported major.minor version 52.0 (클래스 [org.slf4j.impl.StaticLoggerBinder]을(를) 로드할 수 없습니다)
=======================================================================================================================================
위와 같은 질문을 드렸습니다. 순번 (14280) 참조..
당연히 말씀 하신대로 StaticLoggerBinder 가 JDK8버전의 클래스를 사용하고 있으니까 위와 같은 에러가 나겠죠..
하지만, 전자정부 프레임워크 v3.10.0 은 jdk1.7 이상 지원한다고 나와 있습니다. 제가 현재 jdk 1.7을 사용하고 있습니다.
egovframework.rte.psl.dataaccess-3.9.0.jar ---> log4j-slf4j-impl-2.11.2.jar
egovframework.rte.psl.dataaccess-3.10.0.jar ---> log4j-slf4j-impl-2.13.0.jar
위와 같이 전자정부프레임워크에서 참조를 하고 있습니다.
log4j-slf4j-impl-2.11.2.jar 는 jdk1.7을 지원하기 때문에 오류가 안나고 있지만...
log4j-slf4j-impl-2.13.0.jar 는 jdk1.8을 지원하기 때문에 오류가 나고 있는걸로 보여집니다.
하지만, 전자정부프레임워크 v3.10.0은 jdk 1.7 이상 지원한다고 되어있는데..
위와 같이 jdk1.8 이상을 지원하는 라이브러리를 사용하면 안되는거 아닌지요???
해결책은 egovframework.rte.psl.dataaccess-3.10.0.jar에서 참조하는 log4j-slf4j-impl 라이브러리 버전을 낮춰야 할거 같은데..
만약, 전자정부프레임워크에서는 낮출 의사가 없다면..
jdk1.7 사용하는 개개인이 pom.xml에서 egovframework.rte.psl.dataaccess-3.10.0.jar 에서 참조하는 log4j-slf4j-impl-2.13.0.jar exclusion하고,
log4j-slf4j-impl-2.11.2.jar 추가하던가 해야 할것 같은데요..
그리고, 전자정부프레임워크 v3.10.0은 jdk 1.8 이상 지원으로 바꾸셔야 할것 같구요..
환경정보
-
- OS 정보 : windows 10
- 표준프레임워크 버전 : 3.10.0
- JDK(JRE) 정보 : 1.7
- WAS 정보 : tomcat 8.5
- DB 정보 : oracle
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
전달 주신 내용은 센터에서 확인하였습니다.
실행환경에 의존성이 있는
log4j-slf4j-impl.jar 라이브러리 관련하여
조치를 취하도록 하겠습니다.
실행환경의 의존성을 변경하는 작업을 진행하거나
말슴 하신대로 dependency에서 의존성 라이브러리의 버전을
exclude하여 낮추는 방안이 맞는 듯 합니다.
센테에서 검토후 조치한다음
다시 공지 드리는 방향으로 진행하겠습니다.
관련 내용 제보에 감사드립니다.
좋은 하루 되십시요.
감사합니다.
표준프레임워크센터 입니다.
전달 주신 내용은 센터에서 확인하였습니다.
실행환경에 의존성이 있는
log4j-slf4j-impl.jar 라이브러리 관련하여
조치를 취하도록 하겠습니다.
실행환경의 의존성을 변경하는 작업을 진행하거나
말슴 하신대로 dependency에서 의존성 라이브러리의 버전을
exclude하여 낮추는 방안이 맞는 듯 합니다.
센테에서 검토후 조치한다음
다시 공지 드리는 방향으로 진행하겠습니다.
관련 내용 제보에 감사드립니다.
좋은 하루 되십시요.
감사합니다.