<html:file> na JSP - erro de java.lang.IllegalArgumentException

3 respostas
rockstorm

Boa tarde,
Estou utilizando Struts em meus sistema e tenho uma pagina JSP que contem um <html:file> onde seleciono um arquivo para upload.
A pagina abre normalmente, eu seleciono o arquivo normalmente mas quando eu clico no botão UPLOAD eu recebo o seguinte erro:

15:26:02,607 ERROR [PropertyUtils] Method invocation failed.
java.lang.IllegalArgumentException: argument type mismatch
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	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:495)
	at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:595)
15:26:02,608 ERROR [[action]] Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: Cannot invoke com.sgp.struts.form.AditamentoForm.setCaminho - 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)

alguem já passou por isso??

3 Respostas

sergio.souza

Como está o mapeamento do seu Form (ActionForm ou DynaValidatorForm…)?

G

Tenho exatamente a mesma excessão ao fazer o upload de vários arquivos.
Meu form:public class FilesForm extends ActionForm { private FormFile[] files; public FormFile[] getFiles() { return files; } public void setFiles(FormFile[] files) { this.files = files; } }
Meu action: public ActionForward saveFiles(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { FilesForm form = (FilesForm) actionForm; FormFile[] files = form.getFiles(); log("Numero de arquivos: " + files.length); }
Meu JSP: &lt;html:form name="filesForm" action="/saveFiles.do" method="post" enctype="multipart/form-data"&gt; Arquivos: &lt;html:file name="mailForm" property="files"/&gt; &lt;html:file name="mailForm" property="files"/&gt; &lt;/html:form&gt;
Alguém tem alguma sugestão???
Agradeço desde já!

lucasddaniel

vc jah colocou no form o enctype=“multipart/form-data”

Criado 13 de dezembro de 2007
Ultima resposta 22 de dez. de 2009
Respostas 3
Participantes 4