javax.servlet.ServletException: BeanUtils.populate
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.IllegalArgumentException: Cannot invoke org.seacat.form.CopyfileForm.setFile1 - argument type mismatch
org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:805)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
CopyfileForm copyfileForm = (CopyfileForm) form;
FormFile file = copyfileForm.getFile1();
if(file==null){
return mapping.findForward("success");
}
String filename=file.getFileName();
copyfileForm.setFilename(filename);
String size= Integer.toString(file.getFileSize())+"bytes";
copyfileForm.setSize(size);
InputStream is = file.getInputStream();
String store_path = servlet.getServletContext().getRealPath("/upload");
OutputStream os = new FileOutputStream(store_path+"/"+filename);
int bytes = 0;
byte [] buffer = new byte[8192];
while((bytes= is.read(buffer,0,8192))!=-1){
os.write(buffer,0,bytes);
}
os.close();
is.close();
file.destroy();
return mapping.findForward("success");
}
}

解决方案 »

  1.   

    Struts 有自带的上传,下载的组建~
      简单调用就行~
      

  2.   

    java.lang.IllegalArgumentException: Cannot invoke org.seacat.form.CopyfileForm.setFile1 - 是填充form的时候出错的吧。。看JSP或配置文件有没有问题。
      

  3.   

    看了啊 没什么问题, shuai45你说的主建 是哪个
      

  4.   

    是JSP的问题 但是还是出现个错误
    java.lang.IllegalArgumentException: Path success.jsp does not start with a "/" character
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)