eGovFrame 실행전 처리할 에러

JSP & Spring 2015. 6. 23. 03:17

글로벌 프로퍼티 설정

  1. 연결하려는 데이터 소스에 맞는 설정값 입력
    프로젝트 프로퍼티의 공통컴포넌트 설정에서 자동 입력 가능
  2. 파일 업로드 경로 설정
    파일 업로드 경로를 원하는 곳으로 설정
    경로는 절대경로로 지정해야하며 미리 생성해 두어야 함
  3. 파일 동기화 경로 설정
    파일 동기화 경로를 원하는 곳으로 설정
    경로는 절대경로로 지정해야하며 미리 생성해 두어야 함
  4. JFile 컴포넌트 설치시 경로 설정
    JFile 컴포넌트로 파일 업로드 및 다운로드할 경로를 원하는 곳으로 설정
    기본 값은 0.2 파일 업로드 경로와 동일하게 되어있으며
    절대경로로 지정해야하며 미리 생성해 두어야 함
  5. 행정코드 사용시 임시 저장 경로 설정
    행정코드 컴포넌트 사용시 행정코드 파일을 다운로드할 경로를 원하는 곳으로 설정
    경로는 절대경로로 지정해야하며 미리 생성해 두어야 함

현재 경로 설정값의 공통 경로

D:/temp/webtest/egov/egov3.2/


우편번호 SQL ID 중복

에러 원인

/resource/egovframework/sqlmap/com/sym/ccm/zip/EgovRdnmadZip_SQL_Altibase.xml
/resource/egovframework/sqlmap/com/sym/ccm/zip/EgovZipManage_SQL_Altibase.xml
두 파일이 사용하는 ID가 동일하여 에러 발생

에러 처리

도로명주소용 SQL인 EgovRdnmadZip_SQL_Altibase.xml의 namespace와 id를
RdnmadZipDAO.java에서 호출하는 id로 변경

namaspace : ZipManage -> RdnmadZip (변경하지 않아도 됨)
id : ZipManageDAO -> RdnmadZipDAO


spring bean 의존성 주입 및 생성 error

에러 원인

spring 설정 파일중 id generate관련 설정 xml 파일 중 일부가 생성이 안되어
bean 생성시 의존성 주입에 에러가 발생

에러 처리

다음 두 파일을 생성하여 스프링 설정 경로에 넣어준다.
그외에 다른 파일이 미생성되었을 수 있으므로 확인이 가능하면 기록해 둘 것.

/resource/egovframework/spring/com/idgn/context-idgn-BackupOpert.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <!--  백업작업 ID -->
    <bean name="egovBackupOpertIdGnrService"
            class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
            destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="backupOpertIdStrategy" />
        <property name="blockSize"  value="1"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="BACKUP_OPERT_ID"/>
    </bean>
    <bean name="backupOpertIdStrategy"
            class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix" value="BAK" />
        <property name="cipers" value="17" />
        <property name="fillChar" value="0" />
    </bean> 
    <!-- 백업작업 ID -->

    <!--  백업결과 ID -->
    <bean name="egovBackupResultIdGnrService"
            class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
            destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="backupResultIdStrategy" />
        <property name="blockSize"  value="1"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="BACKUP_RESULT_ID"/>
    </bean>
    <bean name="backupResultIdStrategy"
            class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix" value="BRT" />
        <property name="cipers" value="17" />
        <property name="fillChar" value="0" />
    </bean> 
    <!-- 백업결과 ID -->

</beans>

/resource/egovframework/spring/com/idgn/context-idgn-ProcessMon.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <!-- ProcessMon... START-->                     
    <bean name="egovProcessMonIdGnrService"
            class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
            destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="procManageStrategy" />
        <property name="blockSize"      value="1"/>
        <property name="table"          value="COMTECOPSEQ"/>
        <property name="tableName"      value="PROC_ID"/>
    </bean>

    <bean name="procManageStrategy"
            class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix" value="PROC_" />
        <property name="cipers" value="15" />
        <property name="fillChar" value="0" />
    </bean>         
    <!-- ProcessMon... END-->
        
    <!-- ProcessMonLog... START-->                  
    <bean name="egovProcessMonLogIdGnrService"
            class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
            destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy"   ref="prolManageStrategy" />
        <property name="blockSize"      value="1"/>
        <property name="table"          value="COMTECOPSEQ"/>
        <property name="tableName"      value="PROL_ID"/>
    </bean>

    <bean name="prolManageStrategy"
            class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix" value="PROL_" />
        <property name="cipers" value="15" />
        <property name="fillChar" value="0" />
    </bean>         
    <!-- ProcessMonLog... END--> 
    
</beans>

/resource/egovframework/spring/com/idgn/context-idgn-Cmmnty.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
    
    <bean name="egovCmmntyIdGnrService"
        class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
        destroy-method="destroy">
        <property name="dataSource" ref="egov.dataSource" />
        <property name="strategy" ref="cmmntyStrategy" />
        <property name="blockSize"  value="10"/>
        <property name="table"      value="COMTECOPSEQ"/>
        <property name="tableName"  value="CMMNTY_ID"/>
    </bean>
    <bean name="cmmntyStrategy"
        class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
        <property name="prefix" value="CMMNTY_" />
        <property name="cipers" value="13" />
        <property name="fillChar" value="0" />
    </bean>
</beans>


약도관리 쿼리 에러

에러 원인

/resource/egovframework/sqlmap/com/uss/ion/rmm/EgovRoughMap_SQL_Altibase.xml
파일에 다음과 같은 에러 구문이 존재

DATE_FORMAT 함수
파일내에 아이디 RoughMapDAO.selectRoughMapList 쿼리문 중에 DATE_FORMAT 함수는
Altibase에 정의되어 있는 함수가 아니어서 쿼리 실행시 에러 발생
LIMIT - OFFSET 구문
파일내에 아이디 RoughMapDAO.selectRoughMapList 쿼리문 중에 LIMIT OFFSET 구문은
Altibase에서 구문 사용법이 틀리므로 수정하여 함

에러 처리

DATE_FORMAT 함수
Altibase에 정의되어 있는 TO_CHAR 함수로 대체
DATE_FORMAT(LAST_UPDT_PNTTM,'%Y-%m-%d') LAST_UPDT_PNTTM
구문을 아래 구문으로 대체
TO_CHAR(LAST_UPDT_PNTTM,'YYYY-MM-DD') LAST_UPDT_PNTTM
LIMIT - OFFSET 구문
LIMIT #recordCountPerPage# OFFSET #firstIndex#
구문을 아래 구문으로 대체
LIMIT #recordCountPerPage# , #firstIndex#

수정된 소스

<select id="RoughMapDAO.selectRoughMapList" parameterClass="RoughMapSearchVO" resultClass="egovMap" >
    <![CDATA[
        SELECT
            ROUGHMAP_ID,
            ROUGHMAPSJ,
            ROUGHMAPADDRESS,
            TO_CHAR(LAST_UPDT_PNTTM,'YYYY-MM-DD') LAST_UPDT_PNTTM
        FROM
            COMTNROUGHMAP
        WHERE
            1 = 1
    ]]>
        <isEqual prepend="AND" property="searchCondition" compareValue="roughMapSj">
            <![CDATA[ROUGHMAPSJ LIKE CONCAT ('%', #searchKeyword#,'%')]]>
        </isEqual>
        <isEqual prepend="AND" property="searchCondition" compareValue="roughMapAddress">
            <![CDATA[ROUGHMAPADDRESS LIKE CONCAT ('%', #searchKeyword#,'%')]]>
        </isEqual>
    <![CDATA[
        ORDER BY ROUGHMAP_ID DESC
    ]]>
        <isEqual property="searchUseYn" compareValue="">
            <![CDATA[LIMIT #recordCountPerPage# , #firstIndex#]]>
        </isEqual>
</select>


아이디 중복 체크 쿼리 에러 - ver3.2에서 수정됨

에러 원인

아이디 중복 체크에서 mberManageDAO.checkIdDplct_S 쿼리를 호출하여 중복 여부를 검사
쿼리 중 위의 쿼리 아이디는 정의되어 있지 않으며 userManageDAO.checkIdDplct_S 쿼리 존재
쿼리 구문은 동일하며 정의되어 있는 쿼리를 복사하여 아이디를 수정하면 정상 작동함

에러 처리

/resource/egovframework/sqlmap/uss/umt/EgovMberManage_SQL_Altibase.xml 파일에 아래 구분 추가

    <select id="mberManageDAO.checkIdDplct_S" resultClass="int">
        <![CDATA[
            SELECT COUNT(1) usedCnt
                FROM(
                SELECT
                    EMPLYR_ID             userId
                FROM    COMTNEMPLYRINFO
                UNION ALL
                SELECT
                    ENTRPRS_MBER_ID        userId
                FROM    COMTNENTRPRSMBER
                UNION ALL
                SELECT
                    MBER_ID               userId
                FROM    COMTNGNRLMBER
                ) A
            WHERE userId = #checkId#
        ]]>
    </select>


기업회원 정보 조회 및 수정

에러 원인

/resources/egovframework/sqlmap/com/uss/umt/EgovEntrprsManage_SQL_Altibase.xml 파일의
아이디 entrprsManageDAO.selectEntrprs_S의 쿼리 구문의 문법 오류

에러 처리

구문 오류를 다음과 같이 수정함
, 로 끝나는 곳을 ", 로 수정

수정된 소스

    <select id="entrprsManageDAO.selectEntrprs_S" resultClass="entrprsVO">
        <![CDATA[
            SELECT
                ESNTL_ID                     as "uniqId",
                'USR02'                      as "userTy",
                ENTRPRS_MBER_ID              as "entrprsmberId",
                ENTRPRS_SE_CODE              as "entrprsSeCode",
                BIZRNO                       as "bizrno",
                JURIRNO                      as "jurirno",
                CMPNY_NM                     as "cmpnyNm",
                CXFC                         as "cxfc",
                ZIP                          as "zip",
                ADRES                        as "adres",
                ENTRPRS_MIDDLE_TELNO         as "entrprsMiddleTelno",
                FXNUM                        as "fxnum",
                INDUTY_CODE                  as "indutyCode",
                APPLCNT_NM                   as "applcntNm",
                SBSCRB_DE                    as "sbscrbDe",
                ENTRPRS_MBER_STTUS           as "entrprsMberSttus",
                ENTRPRS_MBER_PASSWORD        as "entrprsMberPassword",
                ENTRPRS_MBER_PASSWORD_HINT   as "entrprsMberPasswordHint",
                ENTRPRS_MBER_PASSWORD_CNSR   as "entrprsMberPasswordCnsr",
                GROUP_ID                     as "groupId",
                DETAIL_ADRES                 as "detailAdres",
                ENTRPRS_END_TELNO            as "entrprsEndTelno",
                AREA_NO                      as "areaNo",
                APPLCNT_IHIDNUM              as "applcntIhidnum",
                APPLCNT_EMAIL_ADRES          as "applcntEmailAdres"
            FROM COMTNENTRPRSMBER
            WHERE ESNTL_ID=#uniqId#
        ]]>
    </select>


중복된 값을 기록하려는 에러

에러 원인

/resourcesegovframework/sqlmap/com/sts/ust/EgovBbsStats_SQL_Altibase.xml
파일의 아이디 BbsStatsDAO.summaryBbsStats
/resourcesegovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Altibase.xml
파일의 아이디 UserStatsDAO.summaryUserStats
위 두 쿼리에서 중복된 PK의 데이터를 추가하려는 쿼리를 실행하여 발생
스프링 설정의 context-scheduling.xml에서 24시간 또는 12시간,
서버 구동후 2분뒤에 호출(SimpleTrigger 방식)하여 발생하며
테스트용으로 설정되어 있는 값으로 실제 운영시에는
24시간마다 1회 호출(CronTrigger방식)하도록 변경하여야 한다.

에러 처리

/resourcesegovframework/sqlmap/com/sts/ust/EgovBbsStats_SQL_Altibase.xml 파일을 아래처럼 수정

<!-- 게시판 통계 트리거 정의 -->
<bean id="bbsStatsTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
    <property name="jobDetail" ref="bbsStats" />
    <!-- 시작하고 2분후에 실행한다. (milisecond) -->
    <property name="startDelay" value="120000" />
    <!-- 매 24시간마다 실행한다. (milisecond) -->
    <property name="repeatInterval" value="86400000" />
</bean>

/resourcesegovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Altibase.xml 파일을 아래 코드를 참조하여 변경

<bean id="bbsStatsTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
       <property name="jobDetail" ref="bbsStats" />
       <!-- 매일 04시 30분에 실행 -->
       <property name="cronExpression" value="0 30 04 * * ?" />
</bean>

: