我用了一个SmartUpload组件上传图片 抛出了如下异常信息 各位大哥帮小弟解决下啊
javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causejava.lang.NullPointerException
com.jspsmart.upload.SmartUpload.initialize(SmartUpload.java:153)
com.ditian.sjjy.struts.action.PresumeAction.execute(PresumeAction.java:95)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
/****************************************************************/
jsp页面如下 
<form name="resume" method="post" action="presume.do" onsubmit="return formcheck();" > 
上传个人照片:<input type="file" name="photo" id="photo"/><br>
       验证码:<input type="text" name="check" id="check"/> <img id="randImage" src="jspPage/image.jsp" />
       <a href="javascript:loadimage();">看不清点我</a>
       <br>
       <input type="submit" value="保存" name="ok" > 
    </form> /*******************************************************/
  PresumeAction 上传代码如下 
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException  {
PresumeForm presumeForm = (PresumeForm) form;// TODO Auto-generated method stub
    SmartUpload sUpload=new SmartUpload();
String filedir="upload/";
long maxsize=50*1024;//50kb
try {
sUpload.initialize((PageContext) PageContext);
sUpload.setMaxFileSize(maxsize);


} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
sUpload.upload();
sUpload.save(filedir,SmartUpload.SAVE_VIRTUAL);

} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// if(checkString.equals(randString))
// {  
//
////
// return mapping.findForward("ok");
// }
//    else
//    {
//    request.setAttribute("msg", "验证码错误");
// return mapping.findForward("fail");
//     } return null;

解决方案 »

  1.   

    这个异常是说你的初始化是空的:sUpload.initialize((PageContext)   PageContext); 
    Pagecontext是空的,你这个应该用ssh做的上传图片,就不能使用uploadfile.jar这个上传组件来做了啊,
    具体的实现方法你可以在网上查一下
      

  2.   

    struts 中有个可以直接上传的类
    可以用他试下
      

  3.   


    这个异常是说你的初始化是空的:sUpload.initialize((PageContext)  PageContext); 
    Pagecontext是空的jspsmart实现文件上传下载及jspSmartUpload.jar下载 
    http://www.ddscj.cn/favorite.do?method=disFavCon&fid=131&type=1&keyword=
      

  4.   

    javax.servlet.ServletException:   java.lang.NullPointerException 
    这个异常是空指针异常,
    问题应该出在这里:
    sUpload.initialize((PageContext)   PageContext);
    说明你的PageContext是空的,
    其实pageContext是在jsp页面中才使用的参数,
    在action中,楼主试试这个参数,
    sUpload.initialize(this.getServlet().getServletConfig(),request,response);
      

  5.   

    同上,这个地方你改成sUpload.initialize(PageContext); 试试看。