严重: Servlet.service() for servlet [springDispatcherServlet] in context with path [/ssm] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at java.io.File.<init>(File.java:277)
at com.javen.util.FileUtil.uploadFile(FileUtil.java:23)
at com.java.controller.importController.importXml(importController.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)----------------------------------------------------------------------------------------------------------------------------------------
上边事报的异常,下面是主要报错的地方: String filePath=request.getSession().getServletContext().getRealPath("uploadFile");
String uploadFileName=FileUtil.uploadFile(inputs,fileName,filePath);

System.out.println(filePath+"/"+uploadFileName);
//解析excel
result=recordService.addRecord(filePath+"/"+uploadFileName);

解决方案 »

  1.   

    看下FileUtil.uploadFile(FileUtil.java:23 )   FileUtil类的23行,是不是因为new File的时候,filePath为null.
      

  2.   

    String filePath=request.getSession().getServletContext().getRealPath("uploadFile") 这句话中的uploadFile是变量还是字符串? 如果是变量为什么要加引号?你这边是在获取servlet上下文中的真实地址,把uploadFile改为‘’\‘’试试
      

  3.   

    result=recordService.addRecord(filePath+"/"+uploadFileName);改成两个"//” 试下
    result=recordService.addRecord(filePath+"//"+uploadFileName);因为 / 是转义符