안녕하세요?
먼저 첨부된 소스를 실행하여 아무런 오류 없이 실행 되는지 여부를 확인해 주시길 바랍니다.
테스트 방법은 WAS에 첨부된 파일을 올려 놓고
http://localhost:포트/gauce_test.jsp?X-UIClient=G40 이라고 입력햇을때
아무런 오류 없이 실행된다면 이상이 없는 것 입니다.
이 경우 가우스 관련 문제가 아니라 해당 어플리케이션 문제입니다.
전체적인 소스를 점검해 보셔야 합니다.
그럼 수고하세요.
>* 고객시스템명 :
>* 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());
> }
> }
>}
>