엑셀 업로드시 id 생성부분 nullpoint 에러입니다
- 작성자 :
- 전*섭
- 작성일 :
- 2013-05-15 15:31:53
- 조회수 :
- 1,224
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요
엑셀 업로드시 *mapping.java 파일에서 id gernerate 를 하려고 하는데
java.lang.NullPointerException 에러가 납니다
이미 qna 에서 검색하여 이와 같은 증상을 다른 분이 문의한것을 보았는데 이메일로 문의해 달라고만 되어있었습니다
기존 다른 java 파일에서 사용하는 id gernerate인데 엑셀용 *mappin.java에서만 에러가 납니다
기존에 쓰던부분이라 context-idgen.xml 에 egovBrdcstSchdulIdGnrService 도 정의되어있고 BRDCST_SCHDUL_ID테이블의 nextvalue 값도 존재하고있습니다
<bean name="egovBrdcstSchdulIdGnrService"
class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="brdcstSchdulStrategy" />
<property name="blockSize" value="1"/>
<property name="table" value="COMTECOPSEQ"/>
<property name="tableName" value="BRDCST_SCHDUL_ID"/>
</bean>
String id = egovIdGnrService.getNextStringId(); // 이부분에서만 에러가 납니다
아래는 소스 코드이고 첨부파일로 에러 로그를 보내드리겠습니다
public class ComtnBroadCastExcelZipMapping extends EgovExcelMapping {
protected Log log = LogFactory.getLog(this.getClass());
@Resource(name="egovBrdcstSchdulIdGnrService")
private EgovIdGnrService egovIdGnrService;
/**
* 방송편성정보 엑셀파일 매핑
* @throws FdlException
*/
@SuppressWarnings("deprecation")
@Override
public Object mappingColumn(HSSFRow row) throws FdlException {
*/
HSSFCell cell0 = row.getCell(0);
HSSFCell cell1 = row.getCell(1);
HSSFCell cell2 = row.getCell(2);
HSSFCell cell3 = row.getCell(3);
HSSFCell cell4 = row.getCell(4);
HSSFCell cell5 = row.getCell(5);
HSSFCell cell6 = row.getCell(6);
ComtnbrdcstschdulVO comtnbrdcstschdulVO = new ComtnbrdcstschdulVO();
String id = egovIdGnrService.getNextStringId();
log.debug("egovIdGnrService.getNextStringId() : " + id);
comtnbrdcstschdulVO.setSchdulId(id);
comtnbrdcstschdulVO.setBgndeTime(EgovExcelUtil.getValue(cell0));
comtnbrdcstschdulVO.setEnddeTime(EgovExcelUtil.getValue(cell1));
comtnbrdcstschdulVO.setProgrmId(EgovExcelUtil.getValue(cell2));
comtnbrdcstschdulVO.setOdr(EgovExcelUtil.getValue(cell3));
comtnbrdcstschdulVO.setLookGradCode(EgovExcelUtil.getValue(cell4));
comtnbrdcstschdulVO.setBrdcstTyCode(EgovExcelUtil.getValue(cell5));
comtnbrdcstschdulVO.setHdBrdcstAt(EgovExcelUtil.getValue(cell6));
comtnbrdcstschdulVO.setLiveAt("N");
comtnbrdcstschdulVO.setOnairAt("N");
comtnbrdcstschdulVO.setCaptionBrdcstAt("N");
return comtnbrdcstschdulVO;
}
}
엑셀 업로드시 *mapping.java 파일에서 id gernerate 를 하려고 하는데
java.lang.NullPointerException 에러가 납니다
이미 qna 에서 검색하여 이와 같은 증상을 다른 분이 문의한것을 보았는데 이메일로 문의해 달라고만 되어있었습니다
기존 다른 java 파일에서 사용하는 id gernerate인데 엑셀용 *mappin.java에서만 에러가 납니다
기존에 쓰던부분이라 context-idgen.xml 에 egovBrdcstSchdulIdGnrService 도 정의되어있고 BRDCST_SCHDUL_ID테이블의 nextvalue 값도 존재하고있습니다
<bean name="egovBrdcstSchdulIdGnrService"
class="egovframework.rte.fdl.idgnr.impl.EgovTableIdGnrService"
destroy-method="destroy">
<property name="dataSource" ref="dataSource" />
<property name="strategy" ref="brdcstSchdulStrategy" />
<property name="blockSize" value="1"/>
<property name="table" value="COMTECOPSEQ"/>
<property name="tableName" value="BRDCST_SCHDUL_ID"/>
</bean>
String id = egovIdGnrService.getNextStringId(); // 이부분에서만 에러가 납니다
아래는 소스 코드이고 첨부파일로 에러 로그를 보내드리겠습니다
public class ComtnBroadCastExcelZipMapping extends EgovExcelMapping {
protected Log log = LogFactory.getLog(this.getClass());
@Resource(name="egovBrdcstSchdulIdGnrService")
private EgovIdGnrService egovIdGnrService;
/**
* 방송편성정보 엑셀파일 매핑
* @throws FdlException
*/
@SuppressWarnings("deprecation")
@Override
public Object mappingColumn(HSSFRow row) throws FdlException {
*/
HSSFCell cell0 = row.getCell(0);
HSSFCell cell1 = row.getCell(1);
HSSFCell cell2 = row.getCell(2);
HSSFCell cell3 = row.getCell(3);
HSSFCell cell4 = row.getCell(4);
HSSFCell cell5 = row.getCell(5);
HSSFCell cell6 = row.getCell(6);
ComtnbrdcstschdulVO comtnbrdcstschdulVO = new ComtnbrdcstschdulVO();
String id = egovIdGnrService.getNextStringId();
log.debug("egovIdGnrService.getNextStringId() : " + id);
comtnbrdcstschdulVO.setSchdulId(id);
comtnbrdcstschdulVO.setBgndeTime(EgovExcelUtil.getValue(cell0));
comtnbrdcstschdulVO.setEnddeTime(EgovExcelUtil.getValue(cell1));
comtnbrdcstschdulVO.setProgrmId(EgovExcelUtil.getValue(cell2));
comtnbrdcstschdulVO.setOdr(EgovExcelUtil.getValue(cell3));
comtnbrdcstschdulVO.setLookGradCode(EgovExcelUtil.getValue(cell4));
comtnbrdcstschdulVO.setBrdcstTyCode(EgovExcelUtil.getValue(cell5));
comtnbrdcstschdulVO.setHdBrdcstAt(EgovExcelUtil.getValue(cell6));
comtnbrdcstschdulVO.setLiveAt("N");
comtnbrdcstschdulVO.setOnairAt("N");
comtnbrdcstschdulVO.setCaptionBrdcstAt("N");
return comtnbrdcstschdulVO;
}
}
A
얀녕하세요. 전동섭님.
현재는 mapClass로 지정된 class가 일반적인 class 방식으로 호출되기 때문에 내부에 injection 자체가 처리되지 않습니다.
현재로써는 iBatis query 자체에서 selectKey 등을 활용하셔서 PK 부분을 생성하셔야 할 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
현재는 mapClass로 지정된 class가 일반적인 class 방식으로 호출되기 때문에 내부에 injection 자체가 처리되지 않습니다.
현재로써는 iBatis query 자체에서 selectKey 등을 활용하셔서 PK 부분을 생성하셔야 할 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.