애들은 없고 발견한 벌레
솜이는 잘 놀다가 이거 보면서 미끄럼틀 밑에 숙이고 들어갔다가 쿵하거 머리를 부딪혀 울았다는..
전자정부 프레임워크의 Simple homepage는
default로 hsql로 되어있다.
이것을 mysql로 바꾸려면
기존 hsql로 되어있는 설정을 mysql로 바꾸면 된다.
(hsql의 GlobalsDriverClassName, Blobals.Url 은 지우거나 주석처리)
# DB서버 타입(mysql,oracle,altibase,tibero) - datasource 및 sqlMap 파일 지정에 사용됨 |
저 파일만 바꾸고 RUN as Server 로 실행시키면 net.sf.log4jdbc.DriverSpy 가 없다고 에러가 난다.
aused by: org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sf.log4jdbc.DriverSpy' |
pom.xml 파일에서도 해당 설정을 바꿔줘야 한다.
hsql 은 주석또는 제거하고
<!-- |
주석처리되어있는 log dependency도 주석 제거한다.
<!-- log4jdbc driver --> |
그다음 RUN as Server 했을 때 no bean named 에러가 나면
src/main/resources/egovframework/spring/com/context-properties.xml
파일에 공백을 넣든 뭐든 해서 수정한 다음 저장한다.
ERROR org.springframework.web.servlet.DispatcherServlet - Context initialization failed |
그러면 될 줄 알고 가동하면 db명을 모르겠다는 에러가 난다.
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Unknown database 'sht') |
말그대로 sht라는 database가 없다는 에러다.
기본설정으로 sht로 설정되어있으므로
# mysql |
그리고 가동을 하면...
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
크롬에서는 근데 깨지네..
이거야 뭐 차차 해결해 나가면 되는거고
어쨌거나... 그냥 옮기기도 어렵네 그랴..
전자정부 프레임워크에서
암호화가 바로 동작하지 않는다...
다음과 같은 두 개의 에러다
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 추가
<!-- 암호화 --> |
저장을 하면
maven lib에 있는데도 에러가 사라지지 않는다.
정말 이상하다.. 소스는 다른게 없는데 뭐가 에러지?
문제는 해당 xml 파일이 refresh 되어야 하는데 안된게 문제인 듯 하다..(왜?)
어쩄거나
src/main/resources/egovframework/spring/com/context-crypto.xml
파일에서 우연찮게
<bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl"> |
다음과 같이 바꾼 뒤 저장을 했더니 에러가 사라졌다.
<bean id="egovARIACryptoService" class="egovframework.rte.fdl.cryptography.impl.EgovARIACryptoServiceImpl"> |
1. property 파일에 추가
src/main/resources/egovframework/egovProps/globals.properties
#암호화 |
2. context-crypto 파일에 해당 값으로 변경
src/main/resources/egovframework/spring/com/context-crypto.xml
<?xml version="1.0" encoding="UTF-8"?> |
참고 : 전자정부 프레임워크에서는 암호화 관련
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
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")) { |
Globals.java는 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다.
소스상에서 없는 상수들은 여기에 추가한 뒤에
환경설정파일을 생성하고
생성한 환경설정 파일에 내용입력
src/main/java/egovframework/com/cmm/service/Globals.java
//프로퍼티 파일 위치public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath");
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
EgovBasicLogger cannot be resolved EgovFtpTool.java
원래 EgovBasicLogger.java가 있어야 하는데 없어서 나는 에러이다.
src/main/java/egovframework/com/cmm/util/EgovBasicLogger.java 파일 추가
첨부파일 참조.
에러 해결!
DocumentConverter cannot be resolved to a type 라고 EgovPdfCnvr 에서 오류가 난다.
src/main/java/egovframework/com/utl/sim/service/EgovPdfCnvr.java
lib에서 jodconverter를 찾지 못해 발생하는 에러다.
Dependency를 추가하면 된다.
pom.xml 에 추가
<!-- PDF변환용 라이브러리 --> |
저장하면 자동으로 빌드가 되면서 lib에 추가 됨.
자동 빌드가 아니면
RUN > maven install 을 시켜볼 것.
---------------------
EgovPdfCnvr 에 있는 오류를 더 잡아 볼까?
EgovWebUtil 이 없다는 오류는 파일을 추가한다.
src/main/java/egovframework/com/cmm/EgovWebUtil.java
첨부파일 참조
또하나 EgovResourceCloseHelper cannot be resolved 역시
해당 파일을 추가한다.
src/main/java/egovframework/com/cmm/util/EgovResourceCloseHelper.java
EgovPdfCnvr.java의 오류는 모두 해결 됨.
-----------------
FTP cannot be resolved to a variable EgovFtpTool.java
pom.xml에 depencency 추가
<!-- FTP용 3rd party 라이브러리 --> |
<!-- Email --> |
<!-- XML스키마를 자바클래스로 생성하는 라이브러리 --> |
공통 컴포넌트를 설치하면 여러 에러가 나는데 그중의 하나인
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 유형 목록 |
따지고 보면 저게 무슨 쓸모가 있나 하는 생각이 들지만
일단 만든사람이 필요하다고 하니.. 추가해야지
이제 Globals에 해당 속성을 상수로 지정한다.
src/main/java/egovframework/com/cmm/service/Globals.java
//Client정보 프로퍼티 위치 |
그런데 getPathProperty에서 또 에러가 난다.
EgovProperties 에 해당 method가 주석처리 되어있으므로 주석을 푼다.
src/main/java/egovframework/com/cmm/service/EgovProperties.java
그러면 해당 오류는 사라진다.
하지만 아직도 해결해야 할 다른 에러들이 많다 ㅜ.ㅜ
약 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: |
새로운 dynamic 홈페이지를 추가한뒤에 해 볼 것.
아래 내용은 simple homepage를 추가하여 시도한 것이나.... 실패한 내용이므로
동일한 시도를 하지 말기를 바라며 남겨 둠... ㅡ.ㅡ
-------
new Project > simple hompage 를 선택하여 프로젝트를 새로 생성한다음
공통 컴포넌트 추가를 다시 진행하면
기본으로 공통 > 공통에만 색칠이 되어있었다.
게시판 설치를 하려고 클릭했더니
협업 공통도 함께 선택이 된다.