首页 > 技术文章 > ssm整合-错误4

thyHome 2018-05-28 01:56 原文

 

 

 1 严重: Servlet.service() for servlet [dispatcher] in context with path [/management] threw exception [Request processing failed; nested exception is java.lang.StringIndexOutOfBoundsException: String index out of range: -1] with root cause
 2 java.lang.StringIndexOutOfBoundsException: String index out of range: -1
 3     at java.base/java.lang.String.substring(String.java:1836)
 4     at com.imooc.book.controller.BookController.uploadFile(BookController.java:129)
 5     at com.imooc.book.controller.BookController.update(BookController.java:110)
 6     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 7     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 8     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 9     at java.base/java.lang.reflect.Method.invoke(Method.java:564)
10     at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
11     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
12     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
13     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
14     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
15     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
16     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
17     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
18     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
19     at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:883)
20     at javax.servlet.http.HttpServlet.service(HttpServlet.java:653)
21     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
22     at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
23     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
24     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
25     at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
26     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
27     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
28     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
29     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
30     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
31     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
32     at org.springframework.web.multipart.support.MultipartFilter.doFilterInternal(MultipartFilter.java:122)
33     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
34     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
35     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
36     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
37     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
38     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
39     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
40     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
41     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
42     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
43     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
44     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
45     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
46     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
47     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
48     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
49     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
50     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
51     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
52     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
53     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
54     at java.base/java.lang.Thread.run(Thread.java:844)

 

错误原因:传入空的文件没有经过判断就对文件进行处理,需要加上判断:

1 uploadFile.getSize()!=0

 

推荐阅读