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! 
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!