* 고객시스템명 :
* GAUCE 버전 : 4.0
* WAS 종류(WebLogic 등등) : JEUS
* DB 종류 : Oracle 10g
* 문의 유형(질문/요청/참조) : 질문
* 내용 :
업무상 가우스를 처음 사용하는 가우스 초보입니다.
가우스로 화면을 구성하고 조회를 하는데 아래와 같은 에러가 발생합니다.
어떤 에러이며 원인이 무엇인지요? 원론적인 답변이라도 부탁합니다.
****************************** 에러 메시지 ***********************************************************
2006-10-26 15:55:56.941 ComponentHandler - invoke : java.lang.reflect.InvocationTargetException
java.lang.Exception: com/gauce/http/HttpGauceRequest
at com.nds.camt.components.ComponentHandler.runMethod(ComponentHandler.java:196)
at com.nds.camt.components.ComponentHandler.doing(ComponentHandler.java:120)
at camt.com.controller.CamtServlet.processing(CamtServlet.java:222)
at camt.com.controller.CamtServlet.service(CamtServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at jeus.servlet.engine.ServletWrapper.executeServlet(ServletWrapper.java:320)
at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:71)
at com.gauce.filter.GauceFilter.doFilter(Unknown Source)
at jeus.servlet.filter.FilterWrapper.doFilter(FilterWrapper.java:32)
at jeus.servlet.filter.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at jeus.servlet.engine.ServletWrapper.processFilter(ServletWrapper.java:203)
at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:174)
at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:194)
2006-10-26 15:55:56.941 CamtServlet - service():com/gauce/http/HttpGauceRequest
****************************** 원 소스 ***************************************************************
package maagp.adm.land.entry;
import java.util.*;
import javax.ejb.*;
import com.gauce.*;
import com.gauce.http.*;
import com.gauce.io.*;
import com.gauce.log.*;
import com.nds.camt.components.*;
import com.nds.camt.util.CamtUtil;
import common.util.RecordVO;
import common.util.GauceUtil;
import common.util.GauceVO;
import com.nds.camt.util.Crypto;
public class AdmLandDelegate extends AbstractDelegate {
private EJBHome remoteHome;
private EJBLocalHome localHome;
public void setEJBLocalHome(EJBLocalHome localHome) {
this.localHome = localHome;
}
public void setEJBRemoteHome(EJBHome remoteHome) {
this.remoteHome = remoteHome;
}
public AdmLandDelegate() {
}
Crypto cp = new Crypto();
public void getPrdrQuery(GauceVO gaucevo) throws Exception{
GauceInputStream gis = null;
GauceOutputStream gos = null;
try {
gis = ((HttpGauceRequest) req).getGauceInputStream();
gos = ((HttpGauceResponse) res).getGauceOutputStream();
//입력 GauceDataSet 읽기
GauceDataSet condDataSet01 = gis.read("input01");
//입력 GauceDataSet이 null이면 예외처리
if (condDataSet01 == null) throw new Exception("GauceDataTable is null.");
//입력조건 GauceDataSet객체를 GauceUtil이용하여 RecordVO객체로 변환처리한다.
GauceDataRow[] rows = condDataSet01.getDataRows();
RecordVO cond = GauceUtil.createRecordByDataRow(condDataSet01, rows[0]);
//해당 조건에 맞는 결과값을 세션빈에서 읽어온다.
AdmLandEntryEjbHome home = ( AdmLandEntryEjbHome ) remoteHome;
AdmLandEntryEjb remote = home.create();
Collection records = remote.getPrdrQuery(cond);
//출력 데이터셋 읽기
GauceDataSet gridDataSet02 = gis.read("output01");
gos.fragment(gridDataSet02);
//출력 데이터셋 컬럼 정의
gridDataSet02.addDataColumn(new GauceDataColumn("prdr_cd" , GauceDataColumn.TB_STRING , 7));
gridDataSet02.addDataColumn(new GauceDataColumn("prdr_nm" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("mkr_espr_nm" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("rrn" , GauceDataColumn.TB_STRING , 50));
gridDataSet02.addDataColumn(new GauceDataColumn("zip_cd" , GauceDataColumn.TB_STRING , 6));
gridDataSet02.addDataColumn(new GauceDataColumn("basc_addr" , GauceDataColumn.TB_STRING , 100));
gridDataSet02.addDataColumn(new GauceDataColumn("dtld_addr" , GauceDataColumn.TB_STRING , 100));
gridDataSet02.addDataColumn(new GauceDataColumn("tel_no" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("mbp_no" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("fax_no" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("email" , GauceDataColumn.TB_STRING , 50));
gridDataSet02.addDataColumn(new GauceDataColumn("hmpg" , GauceDataColumn.TB_STRING , 100));
gridDataSet02.addDataColumn(new GauceDataColumn("otsd_user_id", GauceDataColumn.TB_STRING , 10));
gridDataSet02.addDataColumn(new GauceDataColumn("wthd_yn" , GauceDataColumn.TB_STRING , 1));
gridDataSet02.addDataColumn(new GauceDataColumn("regr_id" , GauceDataColumn.TB_STRING , 10));
gridDataSet02.addDataColumn(new GauceDataColumn("reg_tm" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("updr_id" , GauceDataColumn.TB_STRING , 10));
gridDataSet02.addDataColumn(new GauceDataColumn("upd_tm" , GauceDataColumn.TB_STRING , 20));
Iterator it = records.iterator();
while(it.hasNext()){
//세션빈에서 읽어온 결과값을 출력데이터셋에 설정
RecordVO record = (RecordVO)it.next();
GauceDataRow row = GauceUtil.createDataRowByRecord(gridDataSet02, record);
// row.setString(3,cp.decrypt((String)row.getString(3)));
//GauceDataRow row = dSet.newDataRow();
/*
row.addColumnValue(record.getString("prdr_cd" ));
row.addColumnValue(record.getString("prdr_nm" ));
row.addColumnValue(record.getString("mkr_espr_nm" ));
row.addColumnValue(cp.decrypt((String)record.getString("rrn")));
row.addColumnValue(record.getString("zip_cd" ));
row.addColumnValue(record.getString("basc_addr" ));
row.addColumnValue(record.getString("dtld_addr" ));
row.addColumnValue(record.getString("tel_no" ));
row.addColumnValue(record.getString("mbp_no" ));
row.addColumnValue(record.getString("fax_no" ));
row.addColumnValue(record.getString("email" ));
row.addColumnValue(record.getString("hmpg" ));
row.addColumnValue(record.getString("otsd_user_id" ));
row.addColumnValue(record.getString("wthd_yn" ));
row.addColumnValue(record.getString("regr_id" ));
row.addColumnValue(record.getString("reg_tm" ));
row.addColumnValue(record.getString("updr_id" ));
row.addColumnValue(record.getString("upd_tm" ));
*/
gridDataSet02.addDataRow(row);
}
gos.write(gridDataSet02);
gos.close();
} catch (Exception e) {
throw new Exception(e.toString());
}
}
public void getLandQuery(GauceVO gaucevo) throws Exception{
GauceInputStream gis = null;
GauceOutputStream gos = null;
try {
gis = ((HttpGauceRequest) req).getGauceInputStream();
gos = ((HttpGauceResponse) res).getGauceOutputStream();
//입력 데이터셋 읽기
GauceDataSet condDataSet01 = gis.read("input01");
if (condDataSet01 == null) throw new Exception("GauceDataTable is null.");
GauceDataRow[] rows = condDataSet01.getDataRows();
RecordVO cond = GauceUtil.createRecordByDataRow(condDataSet01, rows[0]);
//Record cond = new Record();
//cond.set("mmat_nm", (rows[0].getString(condDataSet01.indexOfColumn("mmat_nm"))));
//해당 조건에 맞는 결과값을 세션빈에서 읽어온다.
AdmLandEntryEjbHome home = ( AdmLandEntryEjbHome ) remoteHome;
AdmLandEntryEjb remote = home.create();
Collection records = remote.getLandQuery(cond);
//출력 데이터셋 읽기
GauceDataSet gridDataSet02 = gis.read("output01");
gos.fragment(gridDataSet02);
//출력 데이터셋 컬럼 정의
gridDataSet02.addDataColumn(new GauceDataColumn("prdr_cd" , GauceDataColumn.TB_STRING , 7));
gridDataSet02.addDataColumn(new GauceDataColumn("land_seq" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("soil_prpt_cd" , GauceDataColumn.TB_STRING , 2));
gridDataSet02.addDataColumn(new GauceDataColumn("land_nm" , GauceDataColumn.TB_STRING , 50));
gridDataSet02.addDataColumn(new GauceDataColumn("lnum" , GauceDataColumn.TB_STRING , 100));
gridDataSet02.addDataColumn(new GauceDataColumn("squr" , GauceDataColumn.TB_DECIMAL , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("mkp_yy" , GauceDataColumn.TB_STRING , 4));
gridDataSet02.addDataColumn(new GauceDataColumn("duse_yy" , GauceDataColumn.TB_STRING , 4));
gridDataSet02.addDataColumn(new GauceDataColumn("rmk" , GauceDataColumn.TB_STRING , 1000));
gridDataSet02.addDataColumn(new GauceDataColumn("regr_id" , GauceDataColumn.TB_STRING , 10));
gridDataSet02.addDataColumn(new GauceDataColumn("reg_tm" , GauceDataColumn.TB_STRING , 20));
gridDataSet02.addDataColumn(new GauceDataColumn("updr_id" , GauceDataColumn.TB_STRING , 10));
gridDataSet02.addDataColumn(new GauceDataColumn("upd_tm" , GauceDataColumn.TB_STRING , 20));
Iterator it = records.iterator();
while(it.hasNext()){
//세션빈에서 읽어온 결과값을 출력데이터셋에 설정
RecordVO record = (RecordVO)it.next();
GauceDataRow row = GauceUtil.createDataRowByRecord(gridDataSet02, record);
gridDataSet02.addDataRow(row);
}
gos.write(gridDataSet02);
gos.close();
} catch (Exception e) {
throw new Exception(e.toString());
}
}
public void LandModify(GauceVO gaucevo) throws Exception{
GauceInputStream gis = null;
GauceOutputStream gos = null;
try {
gis = ((HttpGauceRequest) req).getGauceInputStream();
gos = ((HttpGauceResponse) res).getGauceOutputStream();
//입력 데이터셋 읽기
GauceDataSet inputDataSet02 = gis.read("input02");
if (inputDataSet02 == null) throw new Exception("GauceDataTable is null.");
ArrayList records = new ArrayList();
GauceDataRow[] rows = inputDataSet02.getDataRows();
for(int i=0; i<rows.length; i++){
RecordVO record = GauceUtil.createRecordByDataRow(inputDataSet02, rows[i]);
records.add(record);
}
AdmLandEntryEjbHome home = (AdmLandEntryEjbHome) remoteHome;
AdmLandEntryEjb remote = home.create();
remote.LandModify(records);
gos.close();
} catch (Exception e) {
throw new Exception(e.toString());
}
}
}