게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.
* 고객시스템명 : 전사 PLM
* GAUCE 버전 : 3.5
* WAS 종류(WebLogic 등등) : iplanet
* DB 종류 : oracle
* 문의 유형(질문/요청/참조) : 에러처리
* 내용 :
안녕하세요.
삼성SDI 전사 PLM 개발에 참여하고 있는 황익순입니다.
이번에 이상한 현상이 발생했습니다.
여러개의 과제중 2개의 과제에 대해서 에러가 발생합니다.
처음에는 데이터 문제로 발생하는것 같아 데이터를 확인해 보았지만 별 문제가 없습니다.
그리고 다른 코드에서 발생하는게 아니라
flush() 메소드를 호출하면 프로세스가 멈춰 버립니다.
에러가 발생하는것 같기 하지만 catch 문장을 타지는 않습니다.
아래 소스입니다.
/****************************************************************************************
Gauce 관련설정
***************************************************************************************/
ServiceLoader loader = new ServiceLoader(request, response);
GauceService service = loader.newService();
GauceContext context = service.getContext();
Logger logger = context.getLogger();
GauceRequest req = service.getGauceRequest();
GauceResponse res = service.getGauceResponse();
/****************************************************************************************
Gauce 설정 및 Service 연계
***************************************************************************************/
GauceDataSet lo_inputDs = null;
GauceDataSet oDataSet = null;
try {
lo_inputDs = req.getGauceDataSet("INPUT");
PMSDevCostHelper lo_helper = new PMSDevCostHelper();
if(lo_inputDs != null) {
GauceDataRow[] rows = lo_inputDs.getDataRows();
GauceDataRow lo_row = rows[0];
ls_masterOid = WebUtil.nvlToTrim(lo_row.getString(lo_inputDs.indexOfColumn("masterOid")));
ls_pjtOid = WebUtil.nvlToTrim(lo_row.getString(lo_inputDs.indexOfColumn("pjtOid")));
PMSProject lo_project = (PMSProject)ServerUtil.getObjectUsingOid(ls_pjtOid);
//lo_hash.clear();
//lo_hash.put("masterOid",ls_masterOid);
//lo_hash.put("pjtOid",ls_pjtOid);
//double ld_laborCost = sdipms.devcost.beans.PMSDevCostSQLUtil.getLaborPlan(lo_project);
double ld_laborCost = this.getLaborPlan(lo_project);
System.out.println(" ----> call out ld_laborCost : " + ld_laborCost);
oDataSet = req.getGauceDataSet("OUTPUT");
res.enableFirstRow(oDataSet);
System.out.println(" ----> oDataSet : " + oDataSet);
oDataSet.addDataColumn(new GauceDataColumn("laborCost" , GauceDataColumn.TB_DECIMAL, 100, 6));
oDataSet.addDataColumn(new GauceDataColumn("laborCost2" , GauceDataColumn.TB_DECIMAL, 100, 6));
GauceDataRow row = oDataSet.newDataRow();
row.setDouble( oDataSet.indexOfColumn("laborCost") , ld_laborCost);
row.setDouble( oDataSet.indexOfColumn("laborCost2") , ld_laborCost);
oDataSet.addDataRow(row);
System.out.println(" ----> row : " + row);
}
oDataSet.flush(); <== 여기에서 에러발생. -> finally 문자으로 바로 갑니다.
System.out.println(" ----> res : " + res);
res.commit();
} catch(Exception e) {
if(sdipms.common.PMSStaticValues.DEBUG) System.out.println("[dSearchPlanLaborA.jsp] Action Page "+e.toString() + " ==> " + e.getMessage());
res.writeException("Native", "", e.getLocalizedMessage());
res.commit();
} finally {
loader.restoreService(service);
System.out.println(" ----> service : " + service);
}
에러 문장
java.io.IOException: WEB8004: Error flushing the output stream
at com.iplanet.ias.web.connector.nsapi.NSAPIConnector.flush(NSAPIConnector.java:733)
at com.iplanet.ias.web.connector.nsapi.NSAPIResponseStream.flush(NSAPIResponseStream.java:97)
at com.iplanet.ias.web.connector.nsapi.NSAPIResponse.flushBuffer(NSAPIResponse.java:131)
at org.apache.catalina.connector.ResponseFacade.flushBuffer(ResponseFacade.java:219)
at org.apache.catalina.connector.ResponseStream.flush(ResponseStream.java:257)
at com.gauce.io.CommonResponse.flush(CommonResponse)
at com.gauce.io.CommonResponse.commit(CommonResponse)
at com.gauce.io.CommonResponse.commit(CommonResponse)
at _jsps._plmportal._pms._devcost._dSearchPlanLaborA_jsp._jspService(_dSearchPlanLaborA_jsp.java:510)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at com.iplanet.ias.web.jsp.JspServlet$JspServletWrapper.service(JspServlet.java:687)
at com.iplanet.ias.web.jsp.JspServlet.serviceJspFile(JspServlet.java:459)
at com.iplanet.ias.web.jsp.JspServlet.service(JspServlet.java:375)
at javax.servlet.http.HttpServlet.service(Unknown Source)
at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:771)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:322)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:209)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:509)
at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:161)
at com.iplanet.ias.web.WebContainer.service(WebContainer.java:580)
답변부탁합니다.
그럼 수고하세요