[RESOLVIDO]Exception when trying to instantiate Target(name=file, type=..multipart.UploadedFile

Ao fazer o upload com o vraptor… acontece esse erro:
br.com.caelum.vraptor.http.InvalidParameterException: Exception when trying to instantiate Target(name=file, type=interface br.com.caelum.vraptor.interceptor.multipart.UploadedFile)

Meu controller:

@Post("/file")
public void save(UploadedFile file) {
....

}

Minha jsp:

<form id="fd" action="file" method="POST" enctype="multipart/form-data">
    <input type="file" name="file" multiple/>
    <input type="submit">
</form>

Algumas dependency do meu pom:

<dependency>
<groupId>br.com.caelum</groupId>
<artifactId>iogi</artifactId>
<version>0.9.0</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>

Já procurei em outros tópicos mas nenhum resolveu meu problema!

alguem sabe o motivo?

é um bug conhecido que já foi corrigido…

tenta criar essa classe no seu projeto:

https://github.com/caelum/vraptor/issues/454#issuecomment-9795967

deve funcionar.

Vlw Lucas RESOLVEU… eu até vi aquele tópico… mas não era o meu caso… não sabia que tinha solução! obrigado!

só uma questão! dei uma alterada na classe

@Convert(UploadedFile.class)
public class UploadedFileConverter implements Converter {

    private final HttpServletRequest request;

    public UploadedFileConverter(HttpServletRequest request) {
        this.request = request;
    }

    public UploadedFile convert(String value, Class type, ResourceBundle bundle) {
        Object upload = request.getAttribute(value);
        return upload == null ? null : type.cast(upload);
    }

}

vlw lucas!

Lucas, outro problema… Resolvi o problema mas surgiu outro…

<form id="fileupload" action="file" method="POST" enctype="multipart/form-data">
    Add files... <input type="file" name="file" multiple/>
    <input type="text" name="size">
    <input type="submit">
</form>

ele dá o msm erro, quando eu add mais inputs no formulario… sabe qual é o problema?

é exatamente o mesmo erro? o converter está no projeto?

Está sim!

e acontece exatamente o msm… mas só quando eu add outros inputs no form! quanfo tem apenas um input file… ele funciona normal

Assim funciona:

jsp:

<form id="fileupload" action="file" method="POST" enctype="multipart/form-data">  
    Add files... <input type="file" name="file" multiple/>  
</form>

controler:

public void save(UploadedFile file) {...}

ASSIM NÃO FUNCIONA:

<form id="fileupload" action="file" method="POST" enctype="multipart/form-data">  
    Add files... <input type="file" name="file" multiple/>  
    <input type="text" name="size">  
    <input type="submit">  
</form>

controller public void save(UploadedFile file, String size) {...}

estranho… uma coisa não deveria influenciar a outra… posta mais da exception aqui por favor

Lucas, perdão… na verdade não dá erro… apenas vem null

Pq ele se perde quando add um parâmetro a mais no controller?
vou fazer duas requisições msm, mas queria enviar os dois de uma vez! :confused:

o que vem null? o file ou o size?

habilita o log de debug do vraptor pra ver o que acontece nessa requisição.

Lucas… descobri o problema… estou usando um framework mvc pra view… e ele alterava o name dos inputs… desculpa pelo erro besta… mas está certinho… obrigadooo!