전자정부 프레임워크의 Simple homepage는

default로 hsql로 되어있다.

이것을 mysql로 바꾸려면


기존 hsql로 되어있는 설정을 mysql로 바꾸면 된다.

(hsql의 GlobalsDriverClassName, Blobals.Url 은 지우거나 주석처리)

# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨
Globals.DbType = mysql
Globals.UserName=접속할 아이디(root)
Globals.Password=비밀번호

# mysql
Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.Url=jdbc:mysql://127.0.0.1:3306/sht
 



저 파일만 바꾸고 RUN as Server 로 실행시키면 net.sf.log4jdbc.DriverSpy 가 없다고 에러가 난다.

aused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sf.log4jdbc.DriverSpy'
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429) ~[commons-dbcp-1.4.jar:1.4]
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371) ~[commons-dbcp-1.4.jar:1.4]
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) ~[commons-dbcp-1.4.jar:1.4]
    at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:204) ~[spring-jdbc-4.2.4.RELEASE.jar:4.2.4.RELEASE]
    ... 54 more
Caused by: java.lang.ClassNotFoundException: net.sf.log4jdbc.DriverSpy 


pom.xml 파일에서도 해당 설정을 바꿔줘야 한다.

hsql 은 주석또는 제거하고

        <!--
        <dependency>
            <groupId>org.hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>2.3.2</version>
        </dependency>
        -->
        <!-- mysql driver -->
       
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.31</version>
        </dependency> 


주석처리되어있는 log dependency도 주석 제거한다.

        <!-- log4jdbc driver -->
        <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> 


그다음 RUN as Server 했을 때 no bean named 에러가 나면

src/main/resources/egovframework/spring/com/context-properties.xml

파일에 공백을 넣든 뭐든 해서 수정한 다음 저장한다.

ERROR org.springframework.web.servlet.DispatcherServlet - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'EgovFileMngUtil': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'propertiesService' is defined

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'propertiesService' is defined 


그러면 될 줄 알고 가동하면 db명을 모르겠다는 에러가 난다.


Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'sht') 

말그대로 sht라는 database가 없다는 에러다.

기본설정으로 sht로 설정되어있으므로

mysql에 생성한 db명을 써야한다. (나의경우 egov_simplehome)로 해서 바꿔주었다.
src/main/resources/egovframework/egovProps/globals.properties

# mysql
Globals.DriverClassName=net.sf.log4jdbc.DriverSpy
Globals.Url=jdbc:mysql://127.0.0.1:3306/egov_3_7 


그리고 가동을 하면...

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'egov_simplehome.lettnbbs' doesn't exist 


테이블이 없다고 하네...

프로젝트 아래 DATABASE 폴더에 XXX_mysql.sql 파일이 두 개 있다.

ddl 먼서 import 한뒤에

data를 import 하면

다음과 같이 붐~~


로그인을 해 보자

( 암호화 되기 때문에 찾기 힘들었음 ㅜㅜ, egov, admin 등등 해 봤으나 ...결국 찾아 냄)

(data insert 할 때 admin이 추가되었다.)

id : admin

pw : 1



크롬에서는 근데 깨지네..


이거야 뭐 차차 해결해 나가면 되는거고

어쨌거나... 그냥 옮기기도 어렵네 그랴..

728x90


전자정부 프레임워크에서

암호화가 바로 동작하지 않는다...


다음과 같은 두 개의 에러다

Class 'egovframework.rte.fdl.cryptography.EgovPasswordEncoder' not found

Class 'egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl' not found


정의 된 xml 에 가보니 빨간색 에러표시가 있네..

src/main/resources/egovframework/spring/com/context-crypto.xml



그래서 일단 pom.xml 에 depencency 추가

        <!-- 암호화 -->
        <dependency>
            <groupId>egovframework.rte</groupId>
            <artifactId>egovframework.rte.fdl.crypto</artifactId>
            <version>${egovframework.rte.version}</version>
        </dependency>
 


저장을 하면

maven lib에 있는데도 에러가 사라지지 않는다.


정말 이상하다.. 소스는 다른게 없는데 뭐가 에러지?

문제는 해당 xml 파일이 refresh 되어야 하는데 안된게 문제인 듯 하다..(왜?)

어쩄거나

src/main/resources/egovframework/spring/com/context-crypto.xml

파일에서 우연찮게

    <bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl">
        <property name="passwordEncoder" ref="egovPasswordEncoder" />
        <property name="blockSize" value="1024" />
    </bean> 

다음과 같이 바꾼 뒤 저장을 했더니 에러가 사라졌다.

    <bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl">
        <property name="passwordEncoder" ref="egovPasswordEncoder" />
        <property name="blockSize" value="1025" /><!-- default : 1024 -->
    </bean> 



1. property 파일에 추가

src/main/resources/egovframework/egovProps/globals.properties

#암호화
#default (SHA-256)
Globals.crypto.password.algorithm=SHA-256
#password = egovframe
Globals.crypto.hashed.password=gdyYs/IZqY86VcWhT8emCYfqY1ahw2vtLG+/FzNqtrQ=


2. context-crypto 파일에 해당 값으로 변경

src/main/resources/egovframework/spring/com/context-crypto.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
    
    <bean id="egovPasswordEncoder" class="egovframework.rte.fdl.cryptography.EgovPasswordEncoder">
        <property name="algorithm" value="${Globals.crypto.password.algorithm}" /><!-- default : SHA-256 -->
        <property name="hashedPassword" value="${Globals.crypto.hashed.password}" />
    </bean>
   
   
    <bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl">
        <property name="passwordEncoder" ref="egovPasswordEncoder" />
        <property name="blockSize" value="1025" /><!-- default : 1024 -->
    </bean>

</beans>  


참고 : 전자정부 프레임워크에서는 암호화 관련


https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:fdl:encryption_decryption#%EA%B0%80%EC%9D%B4%EB%93%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8_guide_program





728x90

EgovClntInfo 에서 getProperty method가 없거나 인자가 맞지 않을 때 나는 에러다.


The method getProperty(String) in the type EgovProperties is not applicable for the arguments (String, String)


String 인자를 2개 받아야 하는데 1개만 있는게 정의되어 있음.

src/main/java/egovframework/com/cmm/service/EgovProperties.java

해당 method의 주석 풀기.

다른데에서도 호출할 수 있도록 다른 method들도 다 푼다.

if (Globals.OS_TYPE.equals("UNIX")) {
    String[] command = { EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryByOwner"),
                            fullpath.substring(0, fullpath.lastIndexOf("/")), fullpath.substring(fullpath.lastIndexOf("/"), fullpath.length()), owner };
   p = Runtime.getRuntime().exec(command);
   p.waitFor();
} else if (Globals.OS_TYPE.equals("WINDOWS")) {
   String command = EgovProperties.getProperty(Globals.SHELL_FILE_PATH, "SHELL." + Globals.OS_TYPE + ".getDrctryByOwner");
   p = Runtime.getRuntime().exec(command);
   p.waitFor();
                } 


728x90

Globals.java는 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다.


소스상에서 없는 상수들은 여기에 추가한 뒤에

환경설정파일을 생성하고

생성한 환경설정 파일에 내용입력


src/main/java/egovframework/com/cmm/service/Globals.java

//프로퍼티 파일 위치

    public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath");


Globals.java

src/main/resources/egovframework/egovProps/globals.properties

# 환경파일 위치
Globals.ShellFilePath     = globals.properties
Globals.ServerConfPath    = conf/server.properties
Globals.ClientConfPath    = conf/client.properties
Globals.FileFormatPath    = conf/format.properties
Globals.GPKIConfPath      = conf/gpki.properties
Globals.ConfPath          = conf
Globals.MailRequestPath   = mail/request/
Globals.MailRResponsePath = mail/response/
Globals.SMEConfigPath     = conf/SMEConfig.properties


해당 경로가 없으면 만든다.

파일이 없으면 만든다.

기준 : src/main/resources/egovframework/egovProps/conf




728x90

EgovBasicLogger cannot be resolved    EgovFtpTool.java

원래 EgovBasicLogger.java가 있어야 하는데 없어서 나는 에러이다.



src/main/java/egovframework/com/cmm/util/EgovBasicLogger.java 파일 추가


EgovBasicLogger.java

첨부파일 참조.


에러 해결!


728x90

DocumentConverter cannot be resolved to a type 라고 EgovPdfCnvr 에서 오류가 난다.

src/main/java/egovframework/com/utl/sim/service/EgovPdfCnvr.java

lib에서 jodconverter를 찾지 못해 발생하는 에러다.



Dependency를 추가하면 된다.

pom.xml 에 추가


         <!-- PDF변환용 라이브러리 -->
        <dependency>
            <groupId>com.artofsolving</groupId>
            <artifactId>jodconverter</artifactId>
            <version>2.2.1</version>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-api</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-io</artifactId>
                    <groupId>commons-io</groupId>
                </exclusion>
            </exclusions>
        </dependency>
       


저장하면 자동으로 빌드가 되면서 lib에 추가 됨.

자동 빌드가 아니면

RUN > maven install 을 시켜볼 것.


---------------------

EgovPdfCnvr 에 있는 오류를 더 잡아 볼까?

EgovWebUtil 이 없다는 오류는 파일을 추가한다.

src/main/java/egovframework/com/cmm/EgovWebUtil.java

EgovWebUtil.java


첨부파일 참조


또하나 EgovResourceCloseHelper cannot be resolved 역시

해당 파일을 추가한다.

src/main/java/egovframework/com/cmm/util/EgovResourceCloseHelper.java


EgovResourceCloseHelper.java



EgovPdfCnvr.java의 오류는 모두 해결 됨.


-----------------

FTP cannot be resolved to a variable    EgovFtpTool.java

pom.xml에 depencency 추가

        <!-- FTP용 3rd party 라이브러리 -->
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.3</version>
        </dependency> 



        <!-- Email -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>egovframework.com.ems</groupId>
            <artifactId>sndng-mail</artifactId>
            <version>1.0</version>
        </dependency> 


        <!-- XML스키마를 자바클래스로 생성하는 라이브러리 -->
        <dependency>
            <groupId>xmlbeans</groupId>
            <artifactId>xbean</artifactId>
            <version>2.2.0</version>
        </dependency> 


728x90

공통 컴포넌트를 설치하면 여러 에러가 나는데 그중의 하나인

CLIENT_CONF_PATH 가 없다는 오류를 해결한다.


Problem view에 있는 오류 항목(CLIENT_CONF_PATH) 를 더블 클릭하면

오류가 있는 파일로 이동한다.

src/main/java/egovframework/com/utl/sim/service/EgovClntInfo.java 이며

Globals.CLIENT_CONF_PATH 에서 오류가 나고 있다.


그러면 해당 속성을 정의하면 된다.

src/main/resources/egovframework/egovProps/globals.properties

해당 파일에 Globals.ClientConfPath 라는 속성을 추가한다.

속성값은 conf/client.properties 인데 속성파일의 위치를 알려주는 것이다.



src/main/resources/egovframework/egovProps/conf/client.properties

src/main/resources/egovframework/egovProps/에 conf 폴더를 추가한 다음

client.properties 파일을 추가한다.


# 클라이언트 OS 유형 목록
WINDOWS95 = Windows 95
WINDOWS98 = Windows 98
WINDOWSNT = Windows NT
WINDOWSNT5.0 = Windows 2000
WINDOWSNT5.1 = Windows XP
WINDOWSNT5.2 = Windows Server 2003
WINDOWSNT6.0 = Windows Vista
WIN32 = Windows XP
MSN2.5 = MSN 2.5 on Windows 98
MAC_POWERPC = Mac OS X
SUNOS5.9SUN4U = SunOS 5.0 

따지고 보면 저게 무슨 쓸모가 있나 하는 생각이 들지만

일단 만든사람이 필요하다고 하니.. 추가해야지


이제 Globals에 해당 속성을 상수로 지정한다.

src/main/java/egovframework/com/cmm/service/Globals.java

//Client정보 프로퍼티 위치
    public static final String CLIENT_CONF_PATH = EgovProperties.getPathProperty("Globals.ClientConfPath"); 



그런데 getPathProperty에서 또 에러가 난다.

EgovProperties 에 해당 method가 주석처리 되어있으므로 주석을 푼다.

src/main/java/egovframework/com/cmm/service/EgovProperties.java

그러면 해당 오류는 사라진다.

하지만 아직도 해결해야 할 다른 에러들이 많다 ㅜ.ㅜ

728x90

약 50여가지의 공통 컴포넌트가 있다.


기존 프로젝트에서 오른쪽 버튼 클릭

new > others 를 누르면 wizard 선택창이 나타난다.


Wizard 선택창에서

eGovFrame Common Component

(Project 가 있고 Component 가 있다. new Project를 하면 component는 안나타남)


전체 Component 중에서 설치되어 있으면 검정색 표

설치가 안되어있으면 빈 네모

빈 네모를 클릭하면 체크상태로 바뀐다.

Finish버튼을 누르면 설치하고 끝난다.


그러나 All-In-One은 모든 component를 설치한 것이므로 더이상 추가할 게 없다.


전자정부 Framework의 경량화 홈페이지(simple home)에도 게시판이 이미 추가되어 있으므로 공통 컴포넌트를 추가하면 환경설정이 동인한 게 있어서

다음과 같이 BBSAddedOptionsDAO 가 헤깔린다 라고 에러가 남.

(package 는 다른데 annotation이름이 동일한게 많음...)

즉, 전자정부 프레임워크의 게시판을 사용하지 않는 홈페이지에서 추가해야 할 듯...

Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException:
Annotation-specified bean name 'BBSAddedOptionsDAO' for bean class
[egovframework.let.cop.bbs.service.impl.BBSAddedOptionsDAO] conflicts with existing,
non-compatible bean definition of same name and class [egovframework.com.cop.bbs.service.impl.BBSAddedOptionsDAO]
 

새로운 dynamic 홈페이지를 추가한뒤에 해 볼 것.

아래 내용은 simple homepage를 추가하여 시도한 것이나.... 실패한 내용이므로

동일한 시도를 하지 말기를 바라며 남겨 둠... ㅡ.ㅡ

-------

new Project > simple hompage 를 선택하여 프로젝트를 새로 생성한다음

공통 컴포넌트 추가를 다시 진행하면

기본으로 공통 > 공통에만 색칠이 되어있었다.

게시판 설치를 하려고 클릭했더니

협업 공통도 함께 선택이 된다.








728x90


위와같이 첫화면이 떳으면 일단 성공이다.


그럼 로그인을 해 볼까?

구분 

아이디

패스워드

비고

 일반사용자

 USER

 rhdxhd12

 영문으로 공통12

 기업사용자

 ENTERPRISE

 rhdxhd12

 영문으로 공통12

 업무사용자

 TEST1

 rhdxhd12

 영문으로 공통12

 

 webmaster

 rhdxhd12

 영문으로 공통12


비밀번호는 그냥 공통12를 영어자판으로 놓고 치면 되는 것이다.

각 사용자별로 로그인을 해 본다.
먼저 일반사용자
소문자 user 로 시도해본 결과 로그인이 안된다.
(그리고 로그인 실패메세지가 안나온다... 만들어야 하나보다)

대문자 USER로 해서 로그인 하니 이제는 되네


왼쪽의 1. 포털(예제) 메인화면을 클릭하면 나오는 화면이다

오른쪽 위에 로그아웃 버튼이 있다.

다른메뉴를 클릭하면 사라지므로 로그아웃 하려면 메인화면에 와서 해야한다(ㅡㅡ)

로그아웃을 하고 그 다음

업무사용자 ENTERPRISE 로 로그인하면


사용자이름이 N/A로 나온다.

왼쪽 1.포털(예제) 메인화면을 클릭하자


마이페이지 설정 후 확인이 가능하다고 알림이 뜬다.

색상코드 선택했는데... 색상코드입력이 안된다. 숫자로 334455 입력함.


저장버튼을 누르고 나면 아래와 같다.


컨텐츠 추가가 있길래 눌러봤다.

아직 조회된 컨텐츠가 없어서 추가할 수 없다네..

왼쪽 메뉴중에서

사용자지원 > 480. 마이페이지 관리에 컨텐츠 등록이 있으니 나중에 등록해보자



메인으로 와서 로그아웃 한 다음
이번에는 업무사용자 TEST1 로 로그인
그래도 TEST1은 관리자구만


메인화면

환율정보가 스크롤도 안되고 딱 저렇게만 보인다.

실제 내용은

「KEB하나은행 외환포탈」홈페이지를 이용하시려면 "바로가기" 버튼을 클릭해 주시기 바랍니다.
기존 구 도메인 fx.keb.co.kr 으로 환율수신정보를 이용하시던 고객님은 기존 이용 URL 주소에 fx.keb.co.kr 을 fx.kebhana.com 으로 변경하여 주시고 이하 부분은 그대로 붙여서 사용하시기 바랍니다.


보안 > 70. 권한그룹관리를 보면 TEST1계정은 관리자로 나옴.


그 다음 webmaster 는 로그인이 안된다.
(비번아 다르다 ㅡㅡ)


728x90

전자정부 프레임워크 ... 좋은데

세팅이... 쉽지 않다.


가장 쉽게(진짜 쉬울지는 모르겠지만) 설정방법

개발가이드는 이런저런 세팅을 직접할 수 있는 경우에 하는 것이고


all-in-one을 바로(?) 띄우는 방법은

www.egov.go.kr 에 접속 한 다음 '개발자 교육' > 교육자료 에서 원하는 버전(현재 3.7)을 다운받는다.


다운 받은 뒤 압축을 풀면

bin, maven, textbook, workspace.edu 가 있다.

bin 아래에는 java(jdk), tomcat, eclipse, mysql 까지 모두 있다.


다음으로 할 일은

all-in-one 프로젝트를 생성하는 것이다.


eclipse 에서

package Explorer 에서 오른쪽 버튼 클릭 > new > egovTemplate Project 에서 all-in-one을 선택한다.


tomcat 지정하고

프로젝트 명 입력하고

group id 입력한 다음 finish버튼을 누르면 프로젝트 생성이 된다.

(시간이 조금 걸림 - validation까지 하므로... )


세번째로 할 일은 스키마를 불러오는 것이다.

Mysql Work bench 에서

새로운 스키마 egov-3-7 egov_3_7을 만든 뒤에 스키마 및 Data를 불러온다.

(egov-3-7 은 mysql workbench 에서 이름에 -가 있으면 오류나므로 언더바( _ )보 바꿈.)

불러올 파일 경로는 Mysql 기준으로

C:\eGovFrame-3.7.0\workspace.edu\allinone\src\script\mysql\ddl\com4_DDL_Mysql.sql

C:\eGovFrame-3.7.0\workspace.edu\allinone\src\script\mysql\dml\All_Data_Script_mysql_v2.0




좌측메뉴에서 Data Import/Restore 를 선택한 다음

Import from Self-Contained file에서 위 파일을 선택한다.

DDL(Data Definition)이 먼저다.


Target Schema 를 선택한다.
egov-3-7을 만들어 놔서 그것으로 선택.


start Import 버튼을 누르면 잠시뒤에 결과 창이 나타난다.


한번에 한 개의 파일만 되므로 두번 실행하면 위와 같다.


오류가 있는 경우는 몇번째 라인이 잘못되었는지 알려준다.

참고 3.6버전으로 했을 때는 PK는 not null 이라면서 오류가 났는데

3.7버전으로 했을 때는 정상으로 Import가 됨.

eclipse-mysql-tomcat-java 까지 버전이 맞아야 함.


데이터가 정상적으로 import 되었으면

프로젝트 내에 globals.properties 파일에서 db연결 정보를 수정한다.

Globals.OsType = WINDOWS

Globals.DbType = mysql

#DB계정 ID/PW설정
Globals.UserName = 아이디
Globals.Password = 비밀번호


접속정보를 수정한 뒤에

RUN on Server 로 가동시켜 본다.


따라~~~ 첫화면이 일 단 떳다.

sql import할 때 DDL만 수행하는 경우

table does not exist 가 난다.


* 주의 : 3.6과 3.7이 버전에 따라 동작하지 않을 수 있으므로

처음이면 개발자 교육에 있는 버전으로 설정하는게 가장 편하다.


728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
Cloud (26)
Go lang (30)
Front-end (27)
Device (3)
MAC (1)
Spring framework (49)
Java (13)
English (39)
SOA (0)
Idioms (7)
모르는거 (5)
WriteEnglish (10)
Android (56)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :