아 제가 이번에 가우스 처음이라서 잘몰라서 이떤부분이 필요한거를 잘몰랐네요. 죄송합니다.
좀더 자세하게 말씀드리면
말씀하진 데이타셋을 통한 조회쪽 수정시에 이런에러가 납니다.
function onSave(){
//저장 실행
var url = "/ams/System?task_id=saveCmSystemMst";
gtr.KeyValue = "SERVLET(I:STRMST=gdsLst)";
gtr.action = url;
gcSaveData(gtr, url);
}
onSave 함수를 실행시에 에러가 납니다.
<object id="gtr" classid="clsid:78E24950-4295-43D8-9B1A-1F41CD7130E5">
<param name="KeyName" value="toinb_dataid4">
</object>
gtr은 이런식으로 선언이 되어 있구요
아래의 에러코드 중에
at com.fw.gauce.GauceUtil.openGauceService(GauceUtil.java:147)
이부분이 있는데요 이부분을 보면
<GauceUtil.java 파일>
public void openGauceService(HttpServletRequest rq, HttpServletResponse rs) throws SException
{
try
{
this.req = rq;
this.res = rs;
loader = new ServiceLoader(rq, rs);
service = loader.newService();
this.greq = service.getGauceRequest(); <-------요기에서 에러가 납니다.
this.gres = service.getGauceResponse();
}
catch (Exception e)
{
errLog.error(e.toString(), e);
throw new ActException ("P_SS_015",e);
}
}
제가 가우스가 첨이라 혹시 진단하시는데 더 필요한것이 있으니면 말씀주시면 감사하겠습니다.
>안녕하세요?
>
>보내주신것으로 에러를 잡아낸다면 천재입니다. -_-;;;
>
>일단 어느부분에서 이 에러가 나는지를 확인해 보셔야 합니다.
>
>데이터셋을 통한 단순 조회냐?
>
>트랜젝션 컴포넌트를 통한 조회냐?
>
>트랜젝션 컴포넌트를 사용하여 저장하는 부분인가?
>
>그리고 넘어가는 데이터를 트랜젝션 컴포넌트의 Parameters에 넣어주었는지 여부?
>
>단순히 판단하기에는 경우의 수가 너무 많기 때문에
>
>구체적으로 어느부분에서 어떤것을 할때 발생하는지 확인해 보시길 바랍니다.
>
>트랜젝션 컴포넌트의 KeyValue쪽에 맨마지막에 콤마가 있는 경우
>
>트랜젝션 컴포넌트의 Parameters의 value값에 콤마가 들어가 있지 않은지 여부
>
>등을 확인해 보시길 바랍니다.
>
>그럼 수고하세요.
>
>
>>게시판을 이용해 주셔서 감사합니다.
>>다음양식에 맞게 입력해주세요.
>>
>>* 고객시스템명 :
>>* GAUCE 버전 :
>>* WAS 종류(WebLogic 등등) :
>>* DB 종류 :
>>* 문의 유형(질문/요청/참조) :
>>* 내용 :
>>
>>이런 에러가 나는데 밑에 어떤분도 보니깐 비슷한 에러가 난다고 해서 관리자님이 답변을 주신게
>>/*
>>가장 많이 발생하는 경우는
>>클라이언트 측에서 보낸 값들을 읽어올때..
>>갯수가 맞지 않아서 발생합니다.
>>확인해 보시기 바랍니다.
>>*/
>>이런 답변을 주셨는데 클라이언트 측에서 보낸 값들을 읽어올때 어디랑 어디가 갯수가 맞지 않아서 발생한건지 구체적으로 좀 알려주시면 감사 하겠습니다.
>>
>>
>>java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>> at java.lang.String.checkBounds(String.java:368)
>> at java.lang.String.<init>(String.java:404)
>> at com.gauce.io.GauceDataInputStream.readString(GauceDataInputStream)
>> at com.gauce.io.bin.BINRequest.c(BINRequest)
>> at com.gauce.io.bin.BINRequest.parse(BINRequest)
>> at com.gauce.engine.GauceServiceHandler.getGauceRequest(GauceServiceHandler)
>> at com.gauce.engine.GauceServiceHandler.getGauceRequest(GauceServiceHandler)
>> at com.fw.gauce.GauceUtil.openGauceService(GauceUtil.java:147)
>> at com.lotte.ams.web.action.SyAction.service(SyAction.java:31)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
>> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
>> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
>> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
>> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
>> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>> at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
>> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
>> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
>> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
>> at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>>java.lang.NullPointerException:
>> at com.fw.gauce.GauceUtil.gresClose(GauceUtil.java:109)
>> at com.lotte.ams.web.action.SyAction.service(SyAction.java:166)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
>> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
>> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
>> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
>> at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
>> at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
>> at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
>> at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
>> at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
>> at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
>> at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
>> at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
>><2008. 7. 9 오후 4시 06분 55초 KST> <Error> <HTTP> <BEA-101020> <[weblogic.servlet.internal.WebAppServletContext@6ce9ac - appName: 'amsEAR', name: 'ams', context-path: '/ams'] Servlet failed with Exception
>>java.lang.NullPointerException:
>> at com.lotte.ams.web.action.SyAction.service(SyAction.java:157)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>> at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
>> at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
>> at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
>> Truncated. see log file for complete stacktrace
>>
>>
>>
>>참고로 사용하는 쿼리는 아래의 쿼리 이며
>> SELECT A.BUSI_TYPE
>> , A.STR_CD
>> , A.SYS_ID
>> , A.SYS_GBN
>> , A.IP_ADDR
>> , A.DB_NM
>> , A.DB_PORT
>> , A.DB_USER
>> , A.DB_PWD
>> , A.POS_GBN
>> , A.POS_TYPE
>> , A.FLOOR_GBN
>> , A.SHOP_NM
>> , A.POS_VER
>> , A.POS_USING_GBN
>> , A.POS_CLOSE_GBN
>> , A.POS_NET_STAT
>> , A.POS_MST_STAT
>> , A.USE_GBN
>> , B.DET_NM BUSI_TYPE_NM
>> , C.STR_NM
>> , D.DET_NM SYS_GBN_NM
>> , E.DET_NM POS_GBN_NM
>> , H.DET_NM POS_TYPE_NM
>> , F.DET_NM FLOOR_GBN_NM
>> , J.DET_NM POS_USING_GBN_NM
>> , K.DET_NM POS_CLOSE_GBN_NM
>> , CASE A.POS_NET_STAT WHEN '1' THEN '정상' ELSE '비정상' END POS_NET_STAT_NM
>> , CASE A.POS_MST_STAT WHEN '1' THEN '정상' ELSE '비정상' END POS_MST_STAT_NM
>> , I.DET_NM USE_GBN_NM
>> , dbo.AMSF_getDetNm('003',A.SYS_GBN) + RIGHT(A.SYS_ID,2) SYS_GBN_NM
>> , A.SALE_DATE
>> FROM SYSTEM_MST A
>>
>>dateset은 아래의 형식으로 사용하고 있습니다.
>><object id="gbndLst" classid="clsid:4A35BB2C-B831-4199-A486-FEA332D085D9">
>> <param name="DataID" value="gdsLst">
>> <param name="BindInfo" value="
>> <C>Col=busiType Ctrl=gluxBusiType Param=BindColVal</C>
>> <C>Col=strCd Ctrl=gluxStr Param=BindColVal</C>
>> <C>Col=sysId Ctrl=htxtSysId Param=Value</C>
>> <C>Col=sysGbn Ctrl=gluxSysGbn Param=BindColVal</C>
>> <C>Col=saleDate Ctrl=htxtSaleDate Param=Value</C>
>> <C>Col=ipAddr Ctrl=htxtIpAddr Param=Value</C>
>> <C>Col=dbNm Ctrl=htxtDbNm Param=Value</C>
>> <C>Col=dbPort Ctrl=htxtDbPort Param=Value</C>
>> <C>Col=dbUser Ctrl=htxtDbUser Param=Value</C>
>> <C>Col=dbPwd Ctrl=htxtDbPwd Param=Value</C>
>> <C>Col=posGbn Ctrl=gluxPosGbn Param=BindColVal</C>
>> <C>Col=posType Ctrl=gluxPosType Param=BindColVal</C>
>> <C>Col=floorGbn Ctrl=gluxFloorGbn Param=BindColVal</C>
>> <C>Col=shopNm Ctrl=htxtShopNm Param=Value</C>
>> <C>Col=posVer Ctrl=htxtPosVer Param=Value</C>
>> <C>Col=posUsingGbnNm Ctrl=htxtPosUsingGbnNm Param=Value</C>
>> <C>Col=posCloseGbnNm Ctrl=htxtPosCloseGbnNm Param=Value</C>
>> <C>Col=posNetStatNm Ctrl=htxtPosNetStatNm Param=Value</C>
>> <C>Col=posMstStatNm Ctrl=htxtPosMstStatNm Param=Value</C>
>> <C>Col=useGbn Ctrl=gluxUseGbn Param=BindColVal</C>
>> ">
>> </object>
>>
>>그런데 보시면 아시겠지만 쿼리가 dataset을 다 포함하기 때문에 되는걸로 알고 있는데 왜 안되는지 이유를 모르겠습니다.
>>빠른 답변 부탁드립니다.
>