전자정부 프레임워크 환경설정
전자정부 프레임워크를 사용하기 위해서는 회원가입을 해야한다.
회원가입 이후 파일을 다운받을 수 있다.
설정방법은 다음링크를 참조한다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:gettingstarted
- 개발환경 설치
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev3.5:clntinstall
- Maven 환경설정 변경
기본 윈도우에서는 user/.m 폴더에 저장이 되지만 찾기가 쉽지 않다.
원하는 폴더 또는 egov 아래에 넣어도면 찾기도 편하기 때문에 해 두는게 좋다.
또한 다른 PC등에서 설정할 때에도 그대로 복해하면 되므로 편리하다.
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev3.5:gettingstarted
여기에서 settins_2.0.zip을 다운 받은 뒤, egov 폴더 아래 maven폴더 생성하고 사용한다.
maven폴더 아래에 repository폴더를 추가한다.
maven/settings.xml
maven/repository/
나의 경우에는 c:에 설치를 하여
C:\egov\eclipse
C:\egov\workplace
C:\egov\maven\repository
C:\egov\eGovFrameDev-3.5.0-32bit
이 구조로 되어있다.
구현도구를 설치하는 예제를 따라해보면
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev:gettingstarted
eGovFrame의 web project를 실행할 수 있다.
여기에서는 내부 hsql을 사용하기 때문에
mysql로 바꿔야 한다.
sample web project의 이름을 HelloEgov로 했을 때 바꿀 파일들은 다음과 같다
/HelloEgov/pom.xml
/HelloEgov/src/main/resources/egovframework/sqlmap/example/sql-map-config.xml
/HelloEgov/src/main/resources/egovframework/spring/context-datasource.xml
pom.xml 에서는 depencies 태그안에 추가한다.
mysql 설정부분이 주석으로 처리되어있으면 주석을 풀고
해당 내용이 없으면 다음을 추가한다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.31</version>
</dependency>
<dependency>
<groupId>com.googlecode.log4jdbc</groupId>
<artifactId>log4jdbc</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
Eclipse에서 해당 프로젝트를 오른쪽 클릭
Run As > Run on Server를 해서 실행키켰을 때 게시판이 나오면 정상
Http Status 404가 나오면 Console창을 확인한다.
Caused by: java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource 가 난다면 위의 commons-dbcp를 추가 안했을 경우이다.
Caused by: org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [egovframework/sqlmap/example/sql-map-config.xml]; nested exception is com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 1; 후행 섹션에서는 콘텐츠가 허용되지 않습니다.
Caused by: org.xml.sax.SAXParseException: 후행 섹션에서는 콘텐츠가 허용되지 않습니다
위 에러의 경우는 src/main/resources/egovframework/sqlmap/example/sql-map-config.xml
에서 EgovSample_Sample_SQL_mysql.sql 로 변경헀는데
src/main/resources/egovframework/sqlmap/example/sample 요 경로에 해당 파일이 없어서 나는 경우이다.
나는 기존 값을 그대로 사용했다.
Run As > Run on Server 를 했더니
sql 에러가 발생했습니다! error code: {0}, error msg: {1} 라는 메세지가 나왔다.
Console을 보니
Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'example.sample' doesn't exist
테이블이 없다는 얘기다.
-> Mysql에 정상 접속은 된 것 같고, 안되어있으면
src/main/resources/egovframework/spring/context-datasource.xml 에서 접속 설정을 확인한다.
mysql에 database, user는 생성해놔야 한다.
그리고 해당 문제의 해결 방법에 대해 문의 한 결과
"example에는 mysql 스크립트가 없어서 발생하는 오류입니다.
샘플 프로젝트 생성시 소스코드를 제너레이터 하지 마시고 생성 후, 공통컴포넌트를 추가하시면 됩니다."라고 하네...쩝.
그러면 공통콤포넌트 추가하면 되는건가 아니면 다시 처음부터해야하는건가?
일단 mysql에 태이블을 생성했다.