배치관리 컴포넌트 생성 후 에러 날 때 해결방법

by 조쉬 posted Aug 29, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

[전자정부 표준프레임워크]에 배치관리가 있어서 생성을 해봤습니다.


테이블도 생성하고 완료를 한 후에 톰캣을 restart해보니 아래와 같은 에러가 발생했습니다.

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'egovBatchOpertController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'egovBatchOpertIdGnrService' is defined


왜 이런 에러가 발생하는 걸까요?

에러가 나는 'egovBatchOpertIdGnrService'로 검색을 해보니 context-scheduling-sym-bat.xml 파일에 아래와 같이 정의가 돼 있습니다.

    <!-- 배치관리 스케줄러 -->
    <bean id="batchScheduler" class="egovframework.com.sym.bat.service.BatchScheduler" init-method="init" destroy-method="destroy">
        <property name="egovBatchSchdulService" ref="egovBatchSchdulService"/>
        <property name="idgenService" ref="egovBatchResultIdGnrService" />
    </bean>


idgenService를 사용하겠다고 정의는 했는데요. context-idgn-***.xml 파일은 생성이 안돼 있네요.

전자정부 프레임워크 사이트에 가서 확인을 해보니 context-idgn-***.xml 파일을 하나 생성하고 내용을 추가하면 된다고 합니다.


그래서, resource/egovframework/spring/com/scheduling 폴더 아래에 context-idgn-schedule.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="egovBatchOpertIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy"   ref="batchOpertIdStrategy" />
<property name="blockSize"  value="1"/>
<property name="table"      value="COMTECOPSEQ"/>
<property name="tableName"  value="BATCH_OPERT_ID"/>
</bean>
<bean name="batchOpertIdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
<property name="prefix" value="BAT" />
<property name="cipers" value="17" />
<property name="fillChar" value="0" />
</bean> 
<!-- 배치작업 ID -->

<!-- 배치스케줄 ID -->
<bean name="egovBatchSchdulIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy"   ref="batchSchdulIdStrategy" />
<property name="blockSize"  value="1"/>
<property name="table"      value="COMTECOPSEQ"/>
<property name="tableName"  value="BATCH_SCHDUL_ID"/>
</bean>
<bean name="batchSchdulIdStrategy" class="egovframework.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
<property name="prefix" value="BSC" />
<property name="cipers" value="17" />
<property name="fillChar" value="0" />
</bean>
<!-- 배치스케줄 ID -->

<!-- 배치결과 ID -->
<bean name="egovBatchResultIdGnrService" class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService" destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy"   ref="batchResultIdStrategy" />
<property name="blockSize"  value="1"/>
<property name="table"      value="COMTECOPSEQ"/>
<property name="tableName"  value="BATCH_RESULT_ID"/>
</bean>
<bean name="batchResultIdStrategy" 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>


로그인하고 들어가면 배치관리 메뉴가 보입니다.


[전자정부 표준프레임워크]가 참 많은 컴포넌트를 만들어 놓아서 사용할 때 편리하긴 한데요.

하나 추가할 때마다 에러가 발생할 때가 많고, 디자인도 엉성해서 좀 아쉬울 때가 많네요.

개발자들을 위해서 조금만 더 신경 써주면 좋겠다는 생각을 해봅니다.