전자정부프레임워크

전자정부 프레임워크 환경설정

알 수 없는 사용자 2015. 11. 12. 11:42

전자정부 프레임워크를 사용하기 위해서는 회원가입을 해야한다.

회원가입 이후 파일을 다운받을 수 있다.


설정방법은 다음링크를 참조한다.

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에 태이블을 생성했다.

CREATE TABLE `example`.`SAMPLE` ( `ID` VARCHAR(16) NOT NULL , `NAME` VARCHAR(50) NOT NULL , `DESCRIPTION` VARCHAR(100) NOT NULL , `USE_YN` CHAR(1) NOT NULL , PRIMARY KEY (`ID`(16)) COMMENT 'pk' ) ENGINE = InnoDB;

 CREATE TABLE `example`.`IDS` ( `TABLE_NAME` VARCHAR(16) NOT NULL , `NEXT_ID` DECIMAL NOT NULL , PRIMARY KEY (`TABLE_NAME`(16)) COMMENT 'nextid' ) ENGINE = InnoDB;

그리고는 다시 Run AS > Run on Server 했더니
http://localhost:8080/sample/
더미사용자님 환영합니다. 로그아웃 
실행시 오류사항이 있으시면 표준프레임워크센터로 연락하시기 바랍니다

일단 sample 실행은 성공