eGovFrame 표준프레임워크 포털

메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

경량환경템플릿 id생성관련 오류
  • 작성자

    정*랑

  • 작성일

    2012-12-26 14:53:36

  • 조회수

    1,627

  • 구분

    실행환경

  • 진행상태

    완료

질문

경량환경템플릿을 적용하여 프로그램관리 및 메뉴 생성도 잘되었고
롤관리 등도 잘 되었구요.

근데 문제는 신규 데이터 등록관련으로 경량환경템플릿에서 제공하는 id를 생성하는 부분에서 오류가 발생해서요.
그원인을 잘 모르겠습니다.

오류 메시지는 첨부에 붙였다시피
012-12-26 14:31:37,847 ERROR [egovframework.rte.fdl.idgnr.EgovIdGnrService] [IDGeneration Service] Unable to allocate a block of Ids. no row with table_name={0} exists in the ids table.
2012-12-26 14:31:37,882 ERROR [egovframework.let.sram.service.impl.EgovSramServiceImpl] [IDGeneration Service] Unable to allocate a block of Ids. no row with table_name={0} exists in the ids table.
이와 같이 나오구요

참고로

컨트롤러는
@RequestMapping("/sram/addSramView.do")
public String addSramView(
@ModelAttribute("searchVO") SramDefaultVO searchVO, Model model)
throws Exception {

List<CodeVO> codeList = sramService.getCodeList();
model.addAttribute("codeList", codeList);

System.out.println("입력==>" + searchVO.getSearchCondition());
String type = searchVO.getSearchCondition();
if ((type == null) | (type.compareTo("os") == 0)) {
model.addAttribute("sramOsVO", new SramOsVO());
System.out.println("입력2==>" + searchVO.getSearchCondition());
} else ...


...

@RequestMapping("/sram/addSramOs.do")
public String addSramOs(
@ModelAttribute("searchVO") SramDefaultVO searchVO,
SramOsVO sramOsVO,
BindingResult bindingResult, Model model, SessionStatus status)
throws Exception {

// Server-Side Validation
beanValidator.validate(sramOsVO, bindingResult);
System.out.println("OS입력==>" + searchVO.getSearchCondition());
if (bindingResult.hasErrors()) {
model.addAttribute("sramOsVO", sramOsVO);
return "/sram/egovKsramInfo";
}

sramService.insertSramOs(sramOsVO);
status.setComplete();
return "forward:/sram/egovKsramList.do";

입니다.

<service Impl은>
public String insertSramOs(SramOsVO vo) throws Exception {
log.debug(vo.toString());
System.out.println("입력==>OS impl" );
/** ID Generation Service */
String masNo = egovIdGnrService.getNextStringId();

System.out.println("입력==>OS ID gen" );
vo.setMasNo(masNo);
log.debug(vo.toString());

sramDAO.insertSramOs(vo);
return masNo;


인데..System.out.println("입력==>OS ID gen" );이 부분이 출력되지 않는 것으로 봐서는 id gen service에서 문제가 있는것 같구요

어떤 부분을 수정해야할 지 잘 모르겠습니다.

첨부파일
답변

안녕하세요.. 정우랑님..

ServiceImpl 상에.. 사용하신 egovIdGnrService 정의 부분에 @Resource로 지정된 id가 있습니다. (ID generation bean id)

이 id가 .. context-idgen.xml 상에 정의가 되어 있는데...
이 부분을 보시면.. 다음과 같은 형식으로 되어 있습니다.

<!-- 첨부파일 ID Generation Config-->
<bean name="egovFileIdGnrService"
class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
destroy-method="destroy">
<property name="dataSource" ref="dataSource-${Globals.DbType}" />
<property name="strategy" ref="fileStrategy" />
<property name="blockSize" value="10"/>
<property name="table" value="IDS"/>
<property name="tableName" value="FILE_ID"/>
</bean>

여기 보시면.. tableName에 해당되는 부분(위의 예 경우는 "FILE_ID")에 다음과 같은 초기 데이터 등록이 필요합니다.

insert into IDS(TABLE_NAME,NEXT_ID) values ('FILE_ID',0);

그럼.. 즐거운 하루되십시오.
감사합니다.

이 페이지의 구성

묻고 답하기