안녕하세요?
보내주신것으로 에러를 잡아낸다면 천재입니다. -_-;;;
일단 어느부분에서 이 에러가 나는지를 확인해 보셔야 합니다.
데이터셋을 통한 단순 조회냐?
트랜젝션 컴포넌트를 통한 조회냐?
트랜젝션 컴포넌트를 사용하여 저장하는 부분인가?
그리고 넘어가는 데이터를 트랜젝션 컴포넌트의 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을 다 포함하기 때문에 되는걸로 알고 있는데 왜 안되는지 이유를 모르겠습니다.
>빠른 답변 부탁드립니다.