기존 3.9 버전을 2단계 버전업 하여 4.0로 마이그레이션 했다.
구분 | 버전업 환경 |
OS | Window 11 |
JDK | 1.6.0 → 11 |
WAS | Apache Tomcat 8.5.57 → 9.0.107 |
프레임워크 | 전자정부프레임워크 3.9.0 → 4.0 |
DBMS | MySQL 5.3.3 → 8.0.43 |
1. 전자정부 프레임워크 4.0 설치
egovframework:dev4.0:clntinstall [eGovFrame]
본 가이드는 전자정부 표준프레임워크에서 제공하는 개발자 개발환경의 사용 방법을 제공한다. - 인터넷 웹브라우저를 통해 eGovFrame 홈페이지(https://www.egovframe.go.kr/)에 접속하여 사이트 상위메
www.egovframe.go.kr
위 링크를 참고하여 4.0 버전을 설치한다.
2. 이클립스에서 프로젝트 import
Project Exploer 우클릭 > import > Existing Projects into Workspace > 프로젝트 경로 불러오기
3. JDK 버전 11로 변경
환경변수를 변경하지 않고 이클립스 내부적으로 설정만 변경하면 된다.
- 이클립스 상단 메뉴 Window - Preferences > Java - Installed JREs에서 JDK 11 추가 후 선택
- 프로젝트 우클릭 - Properties > Java Build Path > Libraries 탭 > Add Library - JRE System Library > Alternate JRE: 선택
Alternate JRE : 프로젝트마다 다른 JDK/JRE 버전을 쓸 수 있게 해주는 기능
4. 톰캣 설치
Apache Tomcat® - Apache Tomcat 9 Software Downloads
Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version
tomcat.apache.org
위 사이트에서 자신의 운영체제에 맞는 zip을 다운로드한다.
설치 버전 확인
cmd 관리자 권한으로 실행
> cd {톰캣 설치경로}\bin
> version.bat
이후 표시되는 숫자가 버전임.
이클립스의 Servers 탭에서 우클릭 > new Server > Apache > Tomcat v9.0 Server > Add > Browse로 다운받은 폴더 선택 > JRE: jdk 11 선택 후 Finish
5. 프로젝트와 톰캣 연동
- 프로젝트 우클릭 > Java Build Path > Libraries탭에서 Add Library > Server Runtime > 생성한 서버 선택
- 이클립스 하단 Servers 탭에서 서버 더블클릭 > Modules 탭 > 프로젝트 클릭 후 Edit > Path를 '/'로 변경
6. 에러 발생① - 프로젝트를 읽을 때마다 에러 발생 (refresh 하거나 설정 변경 후 Apply 누를 때마다)
An Internal error occured during: "Loading descriptor for 프로젝트.".
원인 : Eclipse가 프로젝트의 web.xml 또는 web descriptor를 해석하려 할 때, 잘못된 Java EE 라이브러리 구조로 클래스 캐스팅을 시도해서 발생한 런타임 class loader 충돌
해결 방안
- ①프로젝트 우클릭 > Property > Project Facets에서 버전 업그레이드
- Danamic Web Module 2.5 > 3.1
- Java 1.8 > 11
- Runtimes 탭 > Apache Tomcat 9.0.107 선택
- ②\프로젝트폴더\.settings\org.eclipse.wst.common.project.facet.core.xml 파일 수정
- <installed facet="jst.web" version="3.1"/>
- ③Project Clean 후 이클립스 재시작
7. 에러 발생② - web.xml 파일 빨간줄
There are '37' errors in 'jsp_2_1.xsd'.
Invalid element name: - display-name
One of the following is expected: - distributable - context-param - filter ... 등등 7개의 빨간줄 발생
원인 : web.xml이 잘못된 XML 스키마를 참조하고 있어서 발생한 문제
해결 방안
- web.xml 상단 2.5 버전 부분을 3.1 버전으로 수정
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
id="WebApp_ID">
<display-name>egov.pota</display-name>
8. lib 변경
maven 프로젝트라면 pom.xml에 작성 후 maven update를 하면 되는데,
난 메이븐이 아니어서 수동으로 갈아 끼워줬다..
아래 사이트에서 jar를 다운로드한다.
실행환경 - 4.x 다운로드 | 표준프레임워크 포털 eGovFrame
처리중입니다. 잠시만 기다려주십시오.
www.egovframe.go.kr
[4.0버전] 실행환경 eGovFrame Lite Version 에서 Full 첨부파일을 받으면 됨
이후 프로젝트 lib 폴더에서 기존 egovframework.rte.fdl.cmmn-3.9.0.jar 과 같은 전자정부 jar들을 모두 4.0으로 교체하면 됨
- org.egovframe.rte.fdl.cmmn-4.0.0.jar
- org.egovframe.rte.fdl.idgnr -4.0.0.jar
- org.egovframe.rte.fdl.property -4.0.0.jar
- org.egovframe.rte.psl.dataaccess -4.0.0.jar
- org.egovframe.rte.plt.mvc -4.0.0.jar
9. 에러 발생③ - 거의 모든 java 파일에 빨간줄이 생김
import ~~ 부분 빨간줄 발생
원인 : 패키지 import 안 됨
해결 방안
- 패키지명 변경
- egovframework.rte > org.egovframe.rte
Ctrl+H로 .java 파일의 egovframework.rte를 org.egovframe.rte로 모두바꾸기
10. 전자정부 가이드대로 설정 변경
egovframework:rtemigration4.0 [eGovFrame]
표준프레임워크 4.0는 Spring Framework 5.3.6 버전을 지원가능하게 업그레이드를 진행하였으나, 전체 오픈소스SW 업그레이드에 따라 일부 변경이 필요합니다. 또한, 각 프로젝트의 상황 및 환경에 따
www.egovframe.go.kr
전자정부프레임워크에서 제공하는 3.10 > 4.0 버전업 가이드를 보고 했다.
AS-IS > TO-BE 형식으로 변경하라고 나오는데,
AS-IS 형식이 못 보던 거면 3.9 > 3.10 가이드를 찾아가서 먼저 그거대로 수정한 후 3.10 > 4.0 가이드를 따라했다.
- context-common.xml 등 모든 xml 코드 수정
- <bean class="egovframework.ret 라고 나와있는 부분을 전부 <bean class="org.egovframe.rte로 변경 (참고로 변경할 때, 한 번에 모두 바꾸는 것 추천. 괜히 하나씩 쳤다가 오타나서 몇시간 헤맸다.)
- Jackson 관련 라이브러리 변경 (2.9.0 > 2.11.4)
- jackson-accotations-2.11.4.jar
- jackson-core-2.11.4.jar
- jackson-databind-2.11.4.jar
- JSP 태그 속성 변경 (commandName > modelAttribute)
이렇게 하니 서버가 정상 실행됐다.
혹시 org.springframework.beans.factory.BeanCreationException 오류가 발생한다면, xml 파일에서 org.egovframe.rte로 변경하는 부분이 덜 됐는지 다시 한 번 확인해보자.
DB 마이그레이션
1. context-datasource.xml 수정
- url : <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
- id : 현재 DB id
- pw : 현재 DB pw
2. DB .sql 파일 추출
MySQL 8.0.43 버전 설치
(이미 8점대가 있다면, MySQL Installer에서 업그레이드 가능)
기존 DB에서 .sql 추출
MySQL Workbench 실행 > 좌측 탭에서 Data Export > 추출할 DB, Table 선택 > 하단 라디오 버튼 Export to Self-Contained File 선택 후 Start Export
Export to Dump Project Folder : 테이블을 개별 .sql 파일로 추출
Export to Self-Contained File : 모든 테이블을 하나의 .sql 파일로 추출
3. DB .sql 파일 import
① cmd 관리자 권한으로 실행 후 MySQL 설치 폴더 bin 으로 이동
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
② MySQL 실행
mysql -u root -p -P 3306 # (설치할 때 지정한 포트)
③ DB 생성
CREATE DATABASE fota CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
④ MySQL 종료
exit
⑤ 이후 bin 경로에서 .sql 파일을 DB에 import하기
mysql -u root -p -P 3306 < C:\dump.sql
(경로에 한글 들어가면 오류 발생할 수 있음, C드라이브 경로 권장)
⑥ Workbench에서 쿼리로 확인
use fota;
show tables;
select * from cm_user;
테이블이 잘 들어가있다면 DB도 마이그레이션 완료
'웹 개발 > Spring' 카테고리의 다른 글
Spring 컨트롤러 이름 변경 후 org.springframework.beans.factory.BeanCreationException 에러 해결 방법 (0) | 2024.11.19 |
---|---|
Spring Boot 프로젝트 생성하기 - 이클립스(Eclipse), 인텔리제이(Intellij) (0) | 2024.11.13 |
[Spring Boot] Tmap API를 이용한 Geocoding - 위치 정보를 좌표로 반환하기 (0) | 2024.01.29 |
[Spring Boot] 파일 업로드와 섬네일 처리 (0) | 2023.10.09 |
[Spring Boot] CoolSMS API를 이용한 휴대폰 본인인증 (0) | 2023.10.09 |