我用了一个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;
}
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;
}
Pagecontext是空的,你这个应该用ssh做的上传图片,就不能使用uploadfile.jar这个上传组件来做了啊,
具体的实现方法你可以在网上查一下
可以用他试下
这个异常是说你的初始化是空的:sUpload.initialize((PageContext) PageContext);
Pagecontext是空的jspsmart实现文件上传下载及jspSmartUpload.jar下载
http://www.ddscj.cn/favorite.do?method=disFavCon&fid=131&type=1&keyword=
这个异常是空指针异常,
问题应该出在这里:
sUpload.initialize((PageContext) PageContext);
说明你的PageContext是空的,
其实pageContext是在jsp页面中才使用的参数,
在action中,楼主试试这个参数,
sUpload.initialize(this.getServlet().getServletConfig(),request,response);