표준프레임워크3.5.0을 운영하기 위한 최소 JDK버전 관련
- 작성자 :
- 최*훈
- 작성일 :
- 2017-06-16 11:46:13
- 조회수 :
- 2,719
- 구분 :
- 운영환경
- 진행상태 :
- 완료
Q
올해 5월달에 아래와 같은 질의응답 글을 올렸었습니다.
http://www.egovframe.go.kr/uss/olh/qna/QnaInqireCoUpdt.do?menu=5&submenu=4
답변주신 내용중 아래와 같은 내용이 있지요.
-----------------------------------------------------------------------------------------------------------------------------------------
첫번쨰 답변으로
eGovFrame3.5.1에서 JDK 1.6을 사용하실 수 있습니다.
eGovFrame3.5.1의 기본 프래임워크인 spring 4.1.2은 JDK 1.6부터 지원합니다.
그러나 센터측에서 제공하는 샘플들은 JDK1.7이상에서 최적화 되었있으니 참고 부탁드립니다.
(그러나 1.6에서도 정상 구동은 됩니다.)
즉, eGovrFrame3.5.1 개발환경(eclipse)은 1.7로 구동하시고 작업하시는 프로젝트는 1.6으로 컴파일 하시면 됩니다.
-----------------------------------------------------------------------------------------------------------------------------------------
이제서야 알게됐지만..
컴파일은 1.6으로 하고
톰캣 7.0에 JDK를 workbench default jre 버전(1.8만 등록되어있었음)으로 두고 있어서...
실제적으론 1.8로 WAS를 세팅해 개발하고 있었던 겁니다.
그래서..jdk를 1.6으로 변경하고 톰캣을 구동하니.
java.lang.UnsupportedClassVersionError 오류가 발생하네요. 아래처럼요...
Caused by: java.lang.UnsupportedClassVersionError: egovframework/rte/fdl/cmmn/AbstractServiceImpl : Unsupported major.minor version 51.0 (unable to load class egovframework.rte.fdl.cmmn.AbstractServiceImpl).......................
아래는 사용중인 pom.xml이구요.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<source.version>1.6</source.version>
<spring.maven.artifact.version>4.0.9.RELEASE</spring.maven.artifact.version>
<egovframework.artifact.version>3.5.0</egovframework.artifact.version>
<jackson.databind-version>2.2.3</jackson.databind-version>
<org.springframework.security-version>3.2.5.RELEASE</org.springframework.security-version>
<org.slf4j-version>1.7.5</org.slf4j-version>
</properties>
제가봤을때..
3.5.0을 사용하면 전자정부표준프레임에서 기본적으로 배포하는 "egovframework.rte.psl.dataaccess" 등의 라이브러리도 동일한 버전이 사용될테고 이 라이브러리가 1.7로 컴파일된게 사용되면서
저런 오류가 발생하는 것 같습니다.
그럼 결론은...3.5.0은 운영환경의 서버가 JDK 1.6일 경우 사용불가한 게 아닌가 싶은데요..
아닌가요?
실행환경 Migration 가이드 (3.X -> 3.5)
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtemigration3.5
이 곳을 보면
"표준프레임워크 3.5는 JDK 1.7이 필요합니다. 이에 따라 우선 관련된 WAS 등 적용되어 있는 SW 등이 JDK 1.7을 지원하는지 확인 및 JDK 업그레이드를 수행하십시오. "
이러한 문구도 있습니다..
헷갈리네요..
폰갭(코도바)사용해서 서비스해야해 버전을 내리는것도 어렵지 않나 싶은데..
빠른 답변 부탁드립니다.
http://www.egovframe.go.kr/uss/olh/qna/QnaInqireCoUpdt.do?menu=5&submenu=4
답변주신 내용중 아래와 같은 내용이 있지요.
-----------------------------------------------------------------------------------------------------------------------------------------
첫번쨰 답변으로
eGovFrame3.5.1에서 JDK 1.6을 사용하실 수 있습니다.
eGovFrame3.5.1의 기본 프래임워크인 spring 4.1.2은 JDK 1.6부터 지원합니다.
그러나 센터측에서 제공하는 샘플들은 JDK1.7이상에서 최적화 되었있으니 참고 부탁드립니다.
(그러나 1.6에서도 정상 구동은 됩니다.)
즉, eGovrFrame3.5.1 개발환경(eclipse)은 1.7로 구동하시고 작업하시는 프로젝트는 1.6으로 컴파일 하시면 됩니다.
-----------------------------------------------------------------------------------------------------------------------------------------
이제서야 알게됐지만..
컴파일은 1.6으로 하고
톰캣 7.0에 JDK를 workbench default jre 버전(1.8만 등록되어있었음)으로 두고 있어서...
실제적으론 1.8로 WAS를 세팅해 개발하고 있었던 겁니다.
그래서..jdk를 1.6으로 변경하고 톰캣을 구동하니.
java.lang.UnsupportedClassVersionError 오류가 발생하네요. 아래처럼요...
Caused by: java.lang.UnsupportedClassVersionError: egovframework/rte/fdl/cmmn/AbstractServiceImpl : Unsupported major.minor version 51.0 (unable to load class egovframework.rte.fdl.cmmn.AbstractServiceImpl).......................
아래는 사용중인 pom.xml이구요.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<source.version>1.6</source.version>
<spring.maven.artifact.version>4.0.9.RELEASE</spring.maven.artifact.version>
<egovframework.artifact.version>3.5.0</egovframework.artifact.version>
<jackson.databind-version>2.2.3</jackson.databind-version>
<org.springframework.security-version>3.2.5.RELEASE</org.springframework.security-version>
<org.slf4j-version>1.7.5</org.slf4j-version>
</properties>
제가봤을때..
3.5.0을 사용하면 전자정부표준프레임에서 기본적으로 배포하는 "egovframework.rte.psl.dataaccess" 등의 라이브러리도 동일한 버전이 사용될테고 이 라이브러리가 1.7로 컴파일된게 사용되면서
저런 오류가 발생하는 것 같습니다.
그럼 결론은...3.5.0은 운영환경의 서버가 JDK 1.6일 경우 사용불가한 게 아닌가 싶은데요..
아닌가요?
실행환경 Migration 가이드 (3.X -> 3.5)
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rtemigration3.5
이 곳을 보면
"표준프레임워크 3.5는 JDK 1.7이 필요합니다. 이에 따라 우선 관련된 WAS 등 적용되어 있는 SW 등이 JDK 1.7을 지원하는지 확인 및 JDK 업그레이드를 수행하십시오. "
이러한 문구도 있습니다..
헷갈리네요..
폰갭(코도바)사용해서 서비스해야해 버전을 내리는것도 어렵지 않나 싶은데..
빠른 답변 부탁드립니다.
A
안녕하세요 최재훈님,
표준프레임워크센터입니다.
5월달의 답변은 가이드를 잘못해드린것 같습니다.
관련된 사항으로 불편을 드려 죄송합니다.
5월달 문의하신 내용을 포함해서 다시 아래와 같은 내용으로 전달드립니다.
표준프레임워크 개발환경 3.5.1은 스프링 버전 4.0.9를 지원하고 있습니다.
그리고 개발환경 3.5.1(실행환경 3.5.0)은 JDK 1.7이상을 지원합니다.
서버도 JDK 1.7 이상을 지원하고 있습니다.
그렇기 때문에 소스부분만 JDK 1.6으로 변경해서 사용한다면 혹여 빌드가 되더라도 실행에 문제가 있을 수 있습니다.
다시 한번 이전에 잘못 가이드해 드린 점 양해 부탁드립니다.
그리고 이전에 답변드린 내용은 묻고답하기 게시판을 사용하시는 분들을 위하여 내용을 정정하도록 하겠습니다.
감사합니다.
표준프레임워크센터입니다.
5월달의 답변은 가이드를 잘못해드린것 같습니다.
관련된 사항으로 불편을 드려 죄송합니다.
5월달 문의하신 내용을 포함해서 다시 아래와 같은 내용으로 전달드립니다.
표준프레임워크 개발환경 3.5.1은 스프링 버전 4.0.9를 지원하고 있습니다.
그리고 개발환경 3.5.1(실행환경 3.5.0)은 JDK 1.7이상을 지원합니다.
서버도 JDK 1.7 이상을 지원하고 있습니다.
그렇기 때문에 소스부분만 JDK 1.6으로 변경해서 사용한다면 혹여 빌드가 되더라도 실행에 문제가 있을 수 있습니다.
다시 한번 이전에 잘못 가이드해 드린 점 양해 부탁드립니다.
그리고 이전에 답변드린 내용은 묻고답하기 게시판을 사용하시는 분들을 위하여 내용을 정정하도록 하겠습니다.
감사합니다.