jsp里代码:<html:file property="myPic" size="40" onchange="javascript:PreviewImg(this);"></html:file>form里的代码:private FormFile myPic;      public FormFile getMyPic() {
return myPic;
     }      public void setMyPic(FormFile myPic) {
this.myPic = myPic;
     }action 里代码:FormFile file = humanInfoForm.getMyPic();
              System.out.println(file.getFileName());
      InputStream stream = file.getInputStream();
      String path = this.getServlet().getServletContext().getRealPath("/upload");
      System.out.println(path);
      OutputStream outStream = new FileOutputStream(path + "/"+ file.getFileName());
      int bytesRead = 0;
      byte[] by = new byte[8196];
      while ((bytesRead = stream.read(by, 0, 8192)) != -1) {
      outStream.write(by, 0, bytesRead);
      }
      outStream.close();
      stream.close();
}
      } catch (Exception ex) {
ex.printStackTrace();
System.out.println("exception===================");
      }
报了java.lang.NullPointerException  这个异常..大家帮我看看哪里错了...代码基本是拷的我一个同学的,他的没问题,我的就出这个异常了.

解决方案 »

  1.   

      光是这个java.lang.NullPointerException 是看不出错误的,你把具体控制台打印的错误发上来帮你看一下吧...
      

  2.   

    java.lang.NullPointerException
    at org.hrresource.struts.action.HumanInfoAction.addHuman(HumanInfoAction.java:230)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)-------就这些 file.getFileName()能打出来
      

  3.   

     这是你的addHuman中报的错误,你的struts配置文件是不是配置好了,估计是你的struts中的配置问题,就是相应的action是不是和相应的actionform进行了正确的对应....
      

  4.   

    应该就是上传那块代码的问题吧?能打出 exception===================  这个来 
      

  5.   

    String path = this.getServlet().getServletContext().getRealPath("/upload");  这句话报的空指针...