点击提交出现500错误 ,这个问题与那位同学的一样 老师你可以说的在具体一点?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | Type Exception Report Message Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0 , Size: 0 Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IndexOutOfBoundsException: Index: 0 , Size: 0 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java: 973 ) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java: 852 ) javax.servlet.http.HttpServlet.service(HttpServlet.java: 622 ) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java: 837 ) javax.servlet.http.HttpServlet.service(HttpServlet.java: 729 ) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java: 52 ) com.imooc.oa.global.EncodingFilter.doFilter(EncodingFilter.java: 21 ) Root Cause java.lang.IndexOutOfBoundsException: Index: 0 , Size: 0 java.util.ArrayList.rangeCheck(ArrayList.java: 657 ) java.util.ArrayList.get(ArrayList.java: 433 ) com.imooc.oa.biz.impl.ClaimVoucherBizImpl.submit(ClaimVoucherBizImpl.java: 89 ) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) java.lang.reflect.Method.invoke(Method.java: 498 ) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 317 ) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 190 ) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 157 ) org.springframework.transaction.interceptor.TransactionInterceptor$ 1 .proceedWithInvocation(TransactionInterceptor.java: 98 ) org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java: 262 ) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java: 95 ) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 179 ) org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java: 92 ) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 179 ) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java: 207 ) com.sun.proxy.$Proxy23.submit(Unknown Source) com.imooc.oa.controller.ClaimVoucherController.submit(ClaimVoucherController.java: 68 ) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) java.lang.reflect.Method.invoke(Method.java: 498 ) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java: 215 ) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java: 132 ) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java: 104 ) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java: 749 ) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java: 690 ) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java: 83 ) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java: 945 ) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java: 876 ) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java: 961 ) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java: 852 ) javax.servlet.http.HttpServlet.service(HttpServlet.java: 622 ) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java: 837 ) javax.servlet.http.HttpServlet.service(HttpServlet.java: 729 ) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java: 52 ) com.imooc.oa.global.EncodingFilter.doFilter(EncodingFilter.java: 21 ) Note The full stack trace of the root cause is available in the server logs. |
我知道是NewArrayList这有问题 因为代码实在太多了 我真的不知道怎么去找 可以帮忙说一下 在那个位置 怎么去修改 希望 您可以给具体一点
2
收起
正在回答 回答被采纳积分+1
6回答
chrismorgen
2018-10-09 10:10:20
如下图所示,跟据报错提示是list集合出现数组下标越界,建议你在代码中输出olds集合和items集合的数据看一下,在执行操作的过程中,olds中的数据和items中的数据分别都是什么。祝学习愉快~
_陈辰晨尘_
2018-10-08 19:48:03
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | package com.imooc.oa.biz.impl; import com.imooc.oa.biz.ClaimVoucherBiz; import com.imooc.oa.dao.ClaimVoucherDao; import com.imooc.oa.dao.ClaimVoucherItemDao; import com.imooc.oa.dao.DealRecordDao; import com.imooc.oa.dao.EmployeeDao; import com.imooc.oa.entity.ClaimVoucher; import com.imooc.oa.entity.ClaimVoucherItem; import com.imooc.oa.entity.DealRecord; import com.imooc.oa.entity.Employee; import com.imooc.oa.global.Contant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service ( "claimVoucherBiz" ) public class ClaimVoucherBizImpl implements ClaimVoucherBiz { @Autowired private ClaimVoucherDao claimVoucherDao; @Autowired private ClaimVoucherItemDao claimVoucherItemDao; @Autowired private DealRecordDao dealRecordDao; @Autowired private EmployeeDao employeeDao; public void save(ClaimVoucher claimVoucher, List<ClaimVoucherItem> items) { claimVoucher.setCreateTime( new Date()); claimVoucher.setNextDealSn(claimVoucher.getCreateSn()); claimVoucher.setStatus(Contant.CLAIMVOUCHER_CREATED); claimVoucherDao.insert(claimVoucher); for (ClaimVoucherItem item:items){ item.setClaimVoucherId(claimVoucher.getId()); claimVoucherItemDao.insert(item); } } public ClaimVoucher get( int id) { return claimVoucherDao.select(id); } public List<ClaimVoucherItem> getItems( int cvid) { return claimVoucherItemDao.selectByClaimVoucher(cvid); } public List<DealRecord> getRecords( int cvid) { return dealRecordDao.selectByClaimVoucher(cvid); } public List<ClaimVoucher> getForSelf(String sn) { return claimVoucherDao.selectByCreateSn(sn); } public List<ClaimVoucher> getForDeal(String sn) { return claimVoucherDao.selectByNextDealSn(sn); } public void update(ClaimVoucher claimVoucher, List<ClaimVoucherItem> items) { claimVoucher.setNextDealSn(claimVoucher.getCreateSn()); claimVoucher.setStatus(Contant.CLAIMVOUCHER_CREATED); claimVoucherDao.update(claimVoucher); List<ClaimVoucherItem> olds=claimVoucherItemDao.selectByClaimVoucher(claimVoucher.getId()); for (ClaimVoucherItem old:olds){ boolean isHave= false ; for (ClaimVoucherItem item:items){ if (item.getId()==old.getId()){ isHave= true ; break ; } } if (!isHave){ claimVoucherItemDao.delete(old.getId()); } } for (ClaimVoucherItem item:items){ item.setClaimVoucherId(claimVoucher.getId()); if (item.getId()> 0 ){ claimVoucherItemDao.update(item); } else { claimVoucherItemDao.insert(item); } } } public void submit( int id) { ClaimVoucher claimVoucher = claimVoucherDao.select(id); Employee employee = employeeDao.select(claimVoucher.getCreateSn()); claimVoucher.setStatus(Contant.CLAIMVOUCHER_SUBMIT); claimVoucher.setNextDealSn(employeeDao.selectByDepartmentAndPost(employee.getDepartmentSn(),Contant.POST_FM).get( 0 ).getSn()); claimVoucherDao.update(claimVoucher); DealRecord dealRecord = new DealRecord(); dealRecord.setDealWay(Contant.DEAL_SUBMIT); dealRecord.setDealSn(employee.getSn()); dealRecord.setClaimVoucherId(id); dealRecord.setDealResult(Contant.CLAIMVOUCHER_SUBMIT); dealRecord.setDealTime( new Date()); dealRecord.setComment( "无" ); dealRecordDao.insert(dealRecord); } } |
chrismorgen
2018-10-08 18:59:49
如下图所示,报错中有提示,在ClaimVoucherBizImpl类中第89行出现问题,
你可以参考下图,我在老师的源码中标记了,建议你检查一下items集合中是否没有添加数据,如果有不明白的地方可以继续提问,祝学习愉快~
SSM主流框架入门与综合项目实战2018版
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧