게시판을 이용해 주셔서 감사합니다.
다음양식에 맞게 입력해주세요.
* 고객시스템명 :
* 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을 다 포함하기 때문에 되는걸로 알고 있는데 왜 안되는지 이유를 모르겠습니다.
빠른 답변 부탁드립니다.