• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 1028
2008.01.24 (20:46:13)

>첨부한 소스코드를 한번이라도 열어보셨는지요?
>
>FAQ의 해당 내용을 참고하여 동일하게 작성한 것입니다.
>
>
>>
>>>게시판을 이용해 주셔서 감사합니다.
>>>다음양식에 맞게 입력해주세요.
>>>
>>>* 고객시스템명 : 법무부 소년보호
>>>* GAUCE 버전 : 4.0
>>>* WAS 종류(WebLogic 등등) : JEUS 5.0
>>>* DB 종류 : Oracle
>>>* 문의 유형(질문/요청/참조) : 질문
>>>* 내용 :
>>>
>>>가우스에서 get 방식으로 struts 액션을 호출하면 이상없이 정상 동작합니다만,
>>>tr 오브젝트를 사용해서 post 방식으로 전송하는 경우에는 다음 내용과 같이 에러가 발생합니다.
>>>
>>>이런 경우에는 어떻게 조치해야 하는지요?
>>>
>>>
>>>- 증상  설명 -
>>>
>>>
>>>서버측 코드 (모든 Request가 통과하는 공통 Strutcs 액션임)
>>>
>>>    public ActionForward execute(ActionMapping mapping, ActionForm form,
>>>            HttpServletRequest request, HttpServletResponse response)
>>>            throws Exception {
>>>        GauceInputStream gis = null;
>>>        GauceOutputStream gos = null;
>>>
>>>        try{
>>>            try
>>>            {
>>>                gis = ((HttpGauceRequest)request).getGauceInputStream();
>>>                gos = ((HttpGauceResponse)response).getGauceOutputStream();
>>>            }
>>>            catch(ClassCastException cce)
>>>            {
>>>                try
>>>                {
>>>                    GauceConnection gconn = (GauceConnection)request.getAttribute("GauceConnection");
>>>                    gis = gconn.getHttpGauceRequest().getGauceInputStream();
>>>                    gos = gconn.getHttpGauceResponse().getGauceOutputStream();
>>>                }
>>>                catch(Exception e)
>>>                {
>>>                    throw e;
>>>                }
>>>            }
>>>
>>>
>>>클라이언트 코드 1
>>>
>>>    function fncGetCategoryList() {
>>>        param = "&searchCondition=" + document.all.searchCondition.value
>>>              + "&searchKeyword=" + document.all.searchKeyword.value
>>>              + "&searchUseYn=" + document.all.searchUseYn.value;  
>>>
>>>        ds_grid.DataID = "<html:rewrite page='/dispatchGASale.do?method=selectCategoryListPage'/>" + param;
>>>        ds_grid.Reset();
>>>    }
>>>
>>>클라이언트 코드 1과 같이 get 방식으로 Action을 호출하면 맨위의 서버측 코드에서
>>>                gis = ((HttpGauceRequest)request).getGauceInputStream();
>>>                gos = ((HttpGauceResponse)response).getGauceOutputStream();
>>>구간이 수행되며 동작에 아무 문제가 없다.
>>>
>>>
>>>
>>>
>>>
>>>클라이언트 코드 2
>>>
>>>    function btn_Save()
>>>    {
>>>        tr_grid.Post();
>>>    }
>>>
>>><object id="tr_grid" classid="clsid:78E24950-4295-43d8-9B1A-1F41CD7130E5" >
>>>    <param name="ServerIP"  value="">
>>>    <param name="Action"    value="<html:rewrite page='/dispatchGASale.do?method=updateCategory'/>">
>>>    <param name="KeyName"   value="Toinb_dataid4">
>>>    <param name="KeyValue"  value="JSP(I:POST=ds_grid)">
>>></object>
>>>
>>>
>>>그러나 클라이언트 코드 2와 같이 tr 오브젝트를 이용해서 post 방식으로 전송하는 경우는 맨위의 서버측 코드의
>>>                try
>>>                {
>>>                    GauceConnection gconn = (GauceConnection)request.getAttribute("GauceConnection");
>>>                    gis = gconn.getHttpGauceRequest().getGauceInputStream();
>>>                    gos = gconn.getHttpGauceResponse().getGauceOutputStream();
>>>                }
>>>구간이 실행되다가 에러가 발생한다.
>>>
>>>
>>>
>>>에러는 다음과 같다
>>>
>>>
>>>2008-01-24 10:25:42,610 ERROR [defaultLogger]
>>> Action Support Exception catch!!
>>>java.io.IOException: 더 이상 입력 스트림으로부터 읽어들일 데이터가 없습니다.
>>>        at com.gauce.io.bin.A.A(Unknown Source)
>>>        at com.gauce.io.bin.A.A(Unknown Source)
>>>        at com.gauce.filter.HttpGauceRequestWrapper.getGauceInputStream(UnknownSource)
>>>        at gov.moj.teams.common.web.DefaultGADispatchActionSupport.execute(DefaultGADispatchActionSupport.java:81)
>>>        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
>>>        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
>>>        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
>>>        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>>>        at jeus.servlet.engine.ServletWrapper.executeServlet(ServletWrapper.java:313)
>>>        at jeus.servlet.filter2.FilterChainImpl.internalDoFilter(FilterChainImpl.java:139)
>>>        at jeus.servlet.filter2.FilterChainImpl.doFilter(FilterChainImpl.java:91)
>>>        at com.gauce.filter.GauceFilter.doFilter(Unknown Source)
>>>        at jeus.servlet.filter2.FilterChainImpl.internalDoFilter(FilterChainImpl.java:122)
>>>        at jeus.servlet.filter2.FilterChainImpl.doFilter(FilterChainImpl.java:91)
>>>        at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:195)
>>>        at jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:268)
>>>
>>>
>>
>>GAUCE FAQ 게시판의 Open WebFrameWork 문서를 참조하시기 바랍니다.
>>
>

Action Form 을 사용하시면 Action Form 이 Gauce Stream 을 모두 읽어버려서 발생하는 오류입니다.
 
Tag List
XE Login