Oracle数据库里:
La_Name varchar2
La_File BOLBjavabean里:
private String LaName;
private byte[] LaFile;DAO里:
private Connection conn=null;
private PreparedStatement pstmt=null;
private Statement stmt=null;
private ResultSet rs=null;
private boolean b;
public DAO()
{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:SYSTEM","SYSTEM","wang2");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean isFileExit(LastFile lf)
{
try
{
pstmt=conn.prepareStatement("select count(*) from SYSTEM.LASTFILE where LA_NAME=?");
pstmt.setString(1,lf.getLaName());
rs=pstmt.executeQuery();
int count;
for(count=0;rs.next();rs.getInt(1));
if(count<=0)
{
b= false;
}
else
{
b= true;
}
}
catch(Exception e)
{
e.printStackTrace();
}
 return b;
}
public int insert(LastFile lf)
{
int flag = 0;
try {
pstmt=conn.prepareStatement("insert into SYSTEM.LASTFILE(LA_NAME) values(?)");
pstmt.setString(1,lf.getLaName());
flag=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return flag;
}
public int update(LastFile lf)
{
int flag=0;
try {
pstmt=conn.prepareStatement("update SYSTEM.LASTFILE set LA_FILE=? where LA_NAME=?");
pstmt.setBytes(1, lf.getLaFile());
pstmt.setString(2,lf.getLaName());
flag=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return flag;
}
public int SaveFile(LastFile lf)
{
int flag=0;
if(lf.getLaName()==null||lf.getLaFile()==null||lf.getLaName().trim().length()==0)
{
flag=0;
}
if(!isFileExit(lf))
{
flag=insert(lf);
}
if(flag==1)
{
flag=update(lf);
}
return flag;
}Action里:
Shang1Form shang1Form = (Shang1Form) form;// TODO Auto-generated method stub
DAO dao=new DAO();
LastFile lf=new LastFile();
if(MultipartFormDataRequest.isMultipartFormData(request))
{
try {
MultipartFormDataRequest mre=new MultipartFormDataRequest(request,null,100*1024*1024,MultipartFormDataRequest.COSPARSER,"gb2312");
if(mre.getParameter("submit")!=null)
{

Hashtable ht=mre.getFiles();
UploadFile fil=(UploadFile) ht.get(shang1Form.getFile());
byte[] b=fil.getData();
try
{
lf.setLaName(shang1Form.getName());
lf.setLaFile(b);
}
catch(Exception e)
{
e.printStackTrace();
}
}
} catch (UploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
int flag=dao.SaveFile(lf); 
if(flag>0)
{
return mapping.findForward("chenggong");
}
else
{
return mapping.findForward("shibai");
}
}
 ActionForm里:
private String name;
private UploadFile file;请各位大侠帮我找找吧,我在线等

解决方案 »

  1.   

    错误信息:
    java.lang.IllegalArgumentException: argument type mismatch
    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.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
    at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
    at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
    at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
    at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
    at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
    at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
    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:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Unknown Source)
    2009-12-10 6:58:33 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet action threw exception
    java.lang.IllegalArgumentException: Cannot invoke com.yourcompany.struts.form.Shang1Form.setFile - argument type mismatch
    at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
    at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
    at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
    at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
    at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
    at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
    at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
    at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
    at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
    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:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    at java.lang.Thread.run(Unknown Source)
      

  2.   

    java.lang.IllegalArgumentException: Cannot invoke com.yourcompany.struts.form.Shang1Form.setFile - argument type mismatch com.yourcompany.struts.form.Shang1Form.setFile方法调用时出错for(count=0;rs.next();rs.getInt(1));
    if(count <=0)
    {
    b= false;
    }
    else
    {
    b= true;
    }

    什么时候b能=true啊?
      

  3.   

    楼上的高手
    count=1的时候b=true
    请您告诉我如何去该,以后如何避免这类的错误,好吗,谢谢
      

  4.   

    int count; 
    for(count=0;rs.next();rs.getInt(1)); 给楼主提个建议
    以后局部变量命名最好是先赋值
    int count = 0; 
    for(count;rs.next();rs.getInt(1)); 
    如此比较好
    然后你的for循环,替换为while(rs.next)是不是更具有可读性
      

  5.   

    form表单上加上enctype="multipart/form-data"
      

  6.   

    public class IllegalArgumentException
    extends RuntimeException
    抛出的异常表明向方法传递了一个不合法或不正确的参数。