En este grupo En todos

Foro de Struts



excepcion: java.lang.IllegalArgumentException

ivan
Madrid, España
Escrito por Ivan
el 04/01/2007

Hola,

Tengo un error al intentar subir un fichero a mi aplicación, es el siguiente:

"java.lang.IllegalArgumentException: Cannot invoke proyecto.src.contenido. action.CrearContenidoForm.setFitem - argument type mismatch"

Se supone q el error se produce en el actionForm donde tengo el metodo setFitem(FileForm f) pero no entiendo por qué se produce.

La jsp donde tengo el formulario es:

<html:form action="/crearContenido. Do" focus="nombre">
        <table border="0" width="100%">
            <tr>
                <th align="right">
                Nombre de Tema
                </th>
                <td align="left">
                    <html:text property="nombre" size="20"/>
                </td>
            </tr>
            <tr>
                <th align="right">
                Fichero contenidos
                </th>

                <td><html:file property="fitem" size="16"/></td>
            </tr>
           
            <tr>
                <td align="right">
                    <html:submit>
                    A&ntilde;adir Contenidos
                    </html:submit>
                </td>
                <td>
                    <html:reset>
                    Limpiar Formulario
                    </html:reset>
                </td>
            </tr>
        </table>
        <br>
        <br>
        <html:link action="/menuAdmin. Do? Destino=contenidos">Volver</html:link>
    </html:form>

Y el actionForm que recoge los datos del formulario es:

Package proyecto.src.contenido. Action;

import javax.servlet.http. HttpServletRequest;
import org.apache.struts. Upload. FormFile;

import org.apache.struts. Action. ActionError;
import org.apache.struts. Action. ActionErrors;
import org.apache.struts. Action. ActionMapping;

public class CrearContenidoForm extends org.apache.struts. Action. ActionForm {

    private String nombre;
    private FormFile fitem;
   
    public CrearContenidoForm () {
    }

    //metodos get y set
    public void setNombre(String n){
        this. Nombre=n;
    }
   
    public String getNombre(){
        return this. Nombre;
    }
   
    public void setFitem(FormFile fitem){
        this. Fitem=fitem;
    }
   
    public FormFile getFitem(){
        return this. Fitem;
    }
   
   
    public void reset(ActionMapping actionMapping, HttpServletRequest request) {
        this. Nombre="";
        this. Fitem=null;
    }

    public ActionErrors validate(ActionMapping actionMapping,
            HttpServletRequest request) {
       
        ActionErrors errors = new ActionErrors();
       
        if (this. Nombre == null) || (this.nombre.length() < 1))

            {errors. Add("nombre", new ActionError("error.nombre.required"));}

        if (this. Fitem == null)
            {errors. Add("path", new ActionError("error.path.required"));}
       
     return errors;
    }
}

A ver si alguien puede ayudarme porque no entiendo el fallo y no sé cómo solucionarlo.

Un saludo y gracias de antemano.

Ivan
Madrid, España
Escrito por Ivan
el 22/01/2007

Hola,

Me contesto a mi mismo para q no se kede sin respuesta el post. El problema era una chorrada como me suele ocurrir normalmente.

Se producía la excepción porque me faltaba poner en el formulario el atributo enctype con el tipo de dato "multipart/form-data".

<form action="/action. Do" method="post" enctype="multipart/form-data>

Bueno eso era, saludos.

Escrito por Pablo
el 28/01/2007
-.-! Lol
Escrito por Natalia
el 18/09/2007
Mil Gracias por responderte a ti mismo porque llevo toda la mañana con ese mismo error. Menos mal que te he visto en el foro tu error, que sino hubiera estado el día entero
Escrito por Jesús
el 27/12/2007
Yo tb llebaba buen rato con el #! @##@ bug, gracias.
Escrito por Mikiesdios
el 18/09/2008
una mas que te lo agradece
Escrito por Leonardo Sergio Apaza Galvez
el 31/03/2009

De lujo yo tambien tenia ese problema y me tire toda la tade trtando de ver que era gracias amigos slaudos

Sol Solecito
Barcelona, España
Escrito por Sol Solecito
el 16/09/2010

Hola yo también tengo ese error, pero ya tengo el metodo en mi form como POST y el el atributo enctype con el tipo de dato "multipart/form-data".

Pero me sigue dando error el error:

java.lang.IllegalArgumentException: Cannot invoke Form setFicheroImagen - argument type mismatch