경량환경템플릿 id생성관련 오류
- 작성자 :
- 정*랑
- 작성일 :
- 2012-12-26 14:53:36
- 조회수 :
- 1,218
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
경량환경템플릿을 적용하여 프로그램관리 및 메뉴 생성도 잘되었고
롤관리 등도 잘 되었구요.
근데 문제는 신규 데이터 등록관련으로 경량환경템플릿에서 제공하는 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에서 문제가 있는것 같구요
어떤 부분을 수정해야할 지 잘 모르겠습니다.
롤관리 등도 잘 되었구요.
근데 문제는 신규 데이터 등록관련으로 경량환경템플릿에서 제공하는 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에서 문제가 있는것 같구요
어떤 부분을 수정해야할 지 잘 모르겠습니다.
A
안녕하세요.. 정우랑님..
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);
그럼.. 즐거운 하루되십시오.
감사합니다.
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);
그럼.. 즐거운 하루되십시오.
감사합니다.