Vraptor - Upload

o problema é que:

context.getRealPath("/home/bruno/fotos");

pega o path a partir da pasta em que a sua aplicação foi deployada… no caso de subir no tomcat do eclipse:

/home/bruno/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Imobiliaria/home/bruno/fotos/50.imagem

se quiser salvar no /home/bruno/fotos mesmo, é só fazer:

File pastaFotos = new File("/home/bruno/fotos");

E ai Lucas!
Tá osso aqui, tentei de td quanto é forma mas a imagem não sobe e nem desce.

@Component
public class Imagens {

	private File pastaImagens;

	public Imagens(ServletContext context) {
		 
		String pastaImagens = context.getRealPath("/home/bruno/fotos");
		File destino = new File(pastaImagens);
		destino.mkdir();
	}

	public void salva(UploadedFile imagem, Imovel imovel) {		
	     File destinoArquivo = new File(pastaImagens, imovel.getIdImovel() + ".imagem");    
	     try {    
		      IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destinoArquivo));     
		     } catch (FileNotFoundException e) {    
		       e.printStackTrace();    
		     } catch (IOException e) {    
		    	 throw new RuntimeException("Erro ao copiar imagem", e);
		     }    		
	}

Valeu!!!

troca a linha 8 por:

this.pastaImagens = new File("/home/bruno/fotos"); 

Ainda não deu boa:

23:11:44,496 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor MultipartInterceptor
23:11:44,496 DEBUG [MultipartInterceptor] Trying to parse multipart request.
23:11:44,502 DEBUG [MultipartInterceptor] Using repository [/tmp] for file upload
23:11:44,545 DEBUG [MultipartInterceptor] Found [14] attributes in the multipart form submission. Parsing them.
23:11:44,571 DEBUG [VRaptorRequest      ] Setting imagem with [252(1).jpg]
23:11:44,572 DEBUG [MultipartItemsProcessor] Uploaded file: imagem with [uploadedFile uploadedCompleteName=252(1).jpg uploadedName=252(1).jpg contentType=image/jpeg]

E mais embaixo o erro:

23:11:45,519 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor
23:11:45,520 DEBUG [AsmBasedTypeCreator ] Trying to make class for ImagensController$download$836896861$8
23:11:45,520 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for ImagensController.download(Imovel) as [imovel]
23:11:45,520 DEBUG [AsmBasedTypeCreator ] Parameter names found for creating type are: [Imovel]
23:11:45,520 DEBUG [AsmBasedTypeCreator ] Method for field 'Imovel' being defined for type Lbr/com/imobiliaria/model/Imovel;
23:11:45,521 DEBUG [AsmBasedTypeCreator ] Methods: [public void ImagensController$download$836896861$8.setImovel(br.com.imobiliaria.model.Imovel), public br.com.imobiliaria.model.Imovel ImagensController$download$836896861$8.getImovel()]
23:11:45,521 DEBUG [AsmBasedTypeCreator ] Fields: [private br.com.imobiliaria.model.Imovel ImagensController$download$836896861$8.Imovel_]
23:11:45,521 DEBUG [CacheBasedTypeCreator] cached generic type for method [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)]
23:11:45,521 DEBUG [OgnlParametersProvider] Applying imovel.idImovel with [200]
23:11:45,531 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for ImagensController.download(Imovel) as [imovel]
23:11:45,531 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)] are [br.com.imobiliaria.model.Imovel@a0c73f]
23:11:45,546 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
23:11:45,546 DEBUG [ExecuteMethodInterceptor] Invoking ImagensController.download(Imovel)
23:11:45,549 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor OutjectResult
23:11:45,549 DEBUG [OutjectResult       ] outjecting file=/home/bruno/fotos/200.imagem
23:11:45,553 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor DownloadInterceptor
23:11:45,554 DEBUG [DownloadInterceptor ] Sending a file to the client
05/04/2010 23:11:45 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: java.io.FileNotFoundException: /home/bruno/fotos/200.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.imobiliaria.interceptor.LoginFuncionarioInterceptor.intercept(LoginFuncionarioInterceptor.java:31)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: java.io.FileNotFoundException: /home/bruno/fotos/200.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:45)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:37)
	at br.com.caelum.vraptor.interceptor.download.DownloadInterceptor.intercept(DownloadInterceptor.java:85)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	... 40 more
Caused by: java.io.FileNotFoundException: /home/bruno/fotos/200.imagem (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:42)
	... 48 more

Nesta linha ele deveria ter upado a imagem, mas não têm nada na pasta:

23:11:45,549 DEBUG [OutjectResult       ] outjecting file=/home/bruno/fotos/200.imagem

E este erro mostra que não achou a imagem, parece que está tentando acessar, só faltaria upar.

br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: java.io.FileNotFoundException: /home/bruno/fotos/200.imagem (No such file or directory) 

essa imagem existe? ela foi salva nesse caminho fisicamente?

Ela não foi salva, a pasta continua vazia, tentei desta forma e tb não foi:

<input type="file" name="upload" />  
<input type="submit" name="submit" value="Enviar" />

Método salva() da classe componente Imagens.

public void salva(UploadedFile imagem, Imovel imovel) {		
		 String pastaImagens = "/home/bruno/fotos";    
	     File destinoArquivo = new File(pastaImagens, imovel.getIdImovel() + ".imagem");    
	     try {    
		      IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destinoArquivo));     
		     } catch (FileNotFoundException e) {    
		       e.printStackTrace();    
		     } catch (IOException e) {    
		    	 throw new RuntimeException("Erro ao copiar imagem", e);
		     }    		
}

Método upload() da classe ImagensController.

public void upload(Imovel imovel, final UploadedFile imagem) {	    
	    imagens.salva(imagem, imovel);	
	}

Chamei diretamente o método “upload” da classe ImagensController pelo form e deu este erro:

00:35:03,852 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
00:35:03,852 DEBUG [ExecuteMethodInterceptor] Invoking ImagensController.download(Imovel)
00:35:03,852 DEBUG [OgnlParametersProvider] Applying imovel.idImovel with [250]
00:35:03,860 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor OutjectResult
00:35:03,861 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for ImagensController.download(Imovel) as [imovel]
00:35:03,862 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)] are [br.com.imobiliaria.model.Imovel@e8fdc9]
00:35:03,869 DEBUG [OutjectResult       ] outjecting file=240.imagem
00:35:03,874 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor DownloadInterceptor
00:35:03,874 DEBUG [DownloadInterceptor ] Sending a file to the client
06/04/2010 00:35:03 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 240.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.imobiliaria.interceptor.LoginFuncionarioInterceptor.intercept(LoginFuncionarioInterceptor.java:31)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 240.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:45)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:37)
	at br.com.caelum.vraptor.interceptor.download.DownloadInterceptor.intercept(DownloadInterceptor.java:85)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	... 40 more
Caused by: java.io.FileNotFoundException: 240.imagem (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:42)
	... 48 more
00:35:03,909 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
00:35:03,909 DEBUG [ExecuteMethodInterceptor] Invoking ImagensController.download(Imovel)
00:35:03,923 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor OutjectResult
00:35:03,924 DEBUG [OutjectResult       ] outjecting file=250.imagem
00:35:03,930 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor DownloadInterceptor
00:35:03,930 DEBUG [DownloadInterceptor ] Sending a file to the client
06/04/2010 00:35:03 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 250.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.imobiliaria.interceptor.LoginFuncionarioInterceptor.intercept(LoginFuncionarioInterceptor.java:31)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 250.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:45)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:37)
	at br.com.caelum.vraptor.interceptor.download.DownloadInterceptor.intercept(DownloadInterceptor.java:85)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	... 40 more
Caused by: java.io.FileNotFoundException: 250.imagem (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:42)
	... 48 more

dá algum erro no upload??

o nome do input file tem q ser o mesmo nome do UploadedFile que está na lógica…

Então, tentei com upload, imagem, salva e nenhum desses três vai.

O interessante é que ele diz que sobe mas não sobe:

00:44:34,275 DEBUG [VRaptor             ] VRaptor received a new request
00:44:34,286 DEBUG [DefaultRequestExecution] executing stack  DefaultRequestExecution
00:44:34,294 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor MultipartInterceptor
00:44:34,294 DEBUG [MultipartInterceptor] Trying to parse multipart request.
00:44:34,300 DEBUG [MultipartInterceptor] Using repository [/tmp] for file upload
00:44:34,334 DEBUG [MultipartInterceptor] Found [14] attributes in the multipart form submission. Parsing them.
00:44:34,361 DEBUG [VRaptorRequest      ] Setting imagem with [252(8).jpg]
00:44:34,361 DEBUG [MultipartItemsProcessor] Uploaded file: imagem with [uploadedFile uploadedCompleteName=252(8).jpg uploadedName=252(8).jpg contentType=image/jpeg]

Ao clicar em Enviar esta é a saida:

00:44:34,459 DEBUG [OgnlParametersProvider] Applying submit with [Enviar]

00:44:35,213 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
00:44:35,213 DEBUG [DefaultResourceTranslator] trying to access /imovel/270/imagem
00:44:35,217 DEBUG [VRaptorRequest      ] Setting imovel.idImovel with [270]
00:44:35,217 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)]
00:44:35,227 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
00:44:35,230 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InterceptorListPriorToExecutionExtractor
00:44:35,234 DEBUG [InstantiatedInterceptorHandler] Invoking interceptor LoginFuncionarioInterceptor
00:44:35,234 DEBUG [InstantiatedInterceptorHandler] Invoking interceptor InstantiateInterceptor
00:44:35,266 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor
00:44:35,267 DEBUG [AsmBasedTypeCreator ] Trying to make class for ImagensController$download$836896861$8
00:44:35,267 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for ImagensController.download(Imovel) as [imovel]
00:44:35,267 DEBUG [AsmBasedTypeCreator ] Parameter names found for creating type are: [Imovel]
00:44:35,267 DEBUG [AsmBasedTypeCreator ] Method for field 'Imovel' being defined for type Lbr/com/imobiliaria/model/Imovel;
00:44:35,268 DEBUG [AsmBasedTypeCreator ] Methods: [public void ImagensController$download$836896861$8.setImovel(br.com.imobiliaria.model.Imovel), public br.com.imobiliaria.model.Imovel ImagensController$download$836896861$8.getImovel()]
00:44:35,268 DEBUG [AsmBasedTypeCreator ] Fields: [private br.com.imobiliaria.model.Imovel ImagensController$download$836896861$8.Imovel_]
00:44:35,269 DEBUG [CacheBasedTypeCreator] cached generic type for method [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)]
00:44:35,269 DEBUG [OgnlParametersProvider] Applying imovel.idImovel with [270]
00:44:35,275 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for ImagensController.download(Imovel) as [imovel]
00:44:35,275 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: ImagensController.downloadImagensController.download(Imovel)] are [br.com.imobiliaria.model.Imovel@bcc8f4]
00:44:35,291 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
00:44:35,292 DEBUG [ExecuteMethodInterceptor] Invoking ImagensController.download(Imovel)
00:44:35,298 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor OutjectResult
00:44:35,299 DEBUG [OutjectResult       ] outjecting file=270.imagem
00:44:35,303 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor DownloadInterceptor
00:44:35,303 DEBUG [DownloadInterceptor ] Sending a file to the client
06/04/2010 00:44:35 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 270.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.imobiliaria.interceptor.LoginFuncionarioInterceptor.intercept(LoginFuncionarioInterceptor.java:31)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	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:127)
	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:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: java.io.FileNotFoundException: 270.imagem (No such file or directory)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:45)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:37)
	at br.com.caelum.vraptor.interceptor.download.DownloadInterceptor.intercept(DownloadInterceptor.java:85)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	... 40 more
Caused by: java.io.FileNotFoundException: 270.imagem (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at br.com.caelum.vraptor.interceptor.download.FileDownload.<init>(FileDownload.java:42)
	... 48 more

Ele até procura pela imagem, que nao existe, pq na pasta fotos é que não está. =/

coloca um method=“post” no form de upload, senão não funciona

o submit tá indo pro download direto, que tem a mesma url do upload… só que aceita outro método

O form está certo, veja:

<form id="" class="" action="imovel/adiciona" method="post" <c:url value="/imovel/${imovel.idImovel }/imagem"/> enctype="multipart/form-data" >

Na linha do form chamo o método adiciona para os dados do imóvel e o <c:url value="/imovel/${imovel.idImovel }/imagem"/> para o método @Post que está na classe ImagensController.

@Post 
	@Path("/imovel/{imovel.idImovel}/imagem")
	public void upload(Imovel imovel, final UploadedFile imagem) {
        imagens.salva(imagem, imovel);
}

Não… o form não está certo…

o certo seria:

<form action="<c:url value="/imovel/${imovel.idImovel }/imagem"/>" 
          method="post" enctype="multipart/form-data">  

[]'s

Mas dessa forma os dados do imóvel não serão gravados. =/

Coloquei o método “adiciona” da classe ImovelController junto com a tag da imagem <c:url value="/imovel/${imovel.idImovel}/imagem"/> referente a classe ImagensController pra gravar os dados do imóvel e ao mesmo tempo subir a imagem.

O Form na verdade é assim:

<form id="" class="" action="imovel/adiciona" <c:url value="/imovel/${imovel.idImovel}/imagem"/> enctype="multipart/form-data" method="post">

<div class="">
<p>Inclus&atilde;o de Im&oacute;vel</p>
</div>	

<ul>
<c:forEach var="error" items="${errors}">   
      <li>${error.message}</li>   
</c:forEach>   
</ul>			
                     
<ul>	
	<li id=""><label class="" for="codImovel">Codigo
	</label>
	<div><input id="" name="imovel.codImovel"
		class="element text small" type="text" maxlength="255" value="" /></div>
	</li>
	
	<li id=""><label class="" for="titulo">T&iacute;tulo
	</label>	
	<div><input id="element_2" name="imovel.titulo"
		class="element text large" type="text" maxlength="255" value="" /></div>
	</li>	
	
	<li id=""><label class="" for="endereco">Endere&ccedil;o
	</label>	
	<div><input id="element_4" name="imovel.endereco"
		class="element text small" type="text" maxlength="255" value="" /></div>
	</li>
	
	<li id=""><label class="" for="bairro">Bairro
	</label>	
	<div><input id="" name="imovel.bairro"
		class="element text small" type="text" maxlength="255" value="" /></div>
	</li>
	
	<li id=""><label class="" for="cidade">Cidade
	</label>	
	<div><input id="" name="imovel.cidade"
		class="element text small" type="text" maxlength="255" value="" /></div>
	</li>
<li id=""><label class="" for="medida">Medida
	</label>	
	<div><input id="" name="imovel.medida"
		class="element text small" type="text" maxlength="255" value="" /></div>
	</li>
	
	<li id=""><label class="" for="valor">Valor (R$)
	</label>	
	<div><input id="" name="imovel.valor"
		class="element text small" type="text" maxlength="20" value="" /></div>
	</li>	
	
	<li id=""><label class="" for="descricao">Descri&ccedil;ao
	</label>	
	<div><textarea id="" name="imovel.descricao"
		class="element textarea large"></textarea></div>
	</li>	
	<li><input type="file" name="imagem" /></li> 
	
</ul>   
  
<input type="submit" name="submit" value="Enviar" />

</form>

[]s

dá uma olhada no html gerado, vai ser algo do tipo (repare q como o imovel é novo, a expressão ${imovel.idImovel} é vazia):

<form id="" class="" action="imovel/adiciona" /meuContexto/imovel//imagem enctype="multipart/form-data" method="post">

isso nem é html válido!

a lógica que vai ser chamada é a que tá na action: /imóvel/adiciona e essa só adiciona o imóvel… se vc quiser que adicione também a foto, vc tem que receber o UploadedFile no método adiciona…

se vc quiser que tenha uma lógica separada pra fazer o upload, vc vai ter que criar um outro formulário, com action="<c:url value="/imovel/${imovel.idImovel}/imagem"/>"… e esse outro formulário tem que ser em outra página, provavelmente redirecionada do seu form de adição…

Obrigado pela ajuda Lucas!

Pensei que a taglib fosse interpretada separadamente da action, por isso coloquei na mesma linha do form, já que não dá pra ser assim, vou refazer td e ver qual é a mlehor forma de criar esse form com imagem.
Assim que terminar, posto aqui o resultado para quem precisar.

Abraço!

Olha ai Lucas. Consegui! =)

O código ficou assim:

Classe componente Imagens:

@Component
public class Imagens {

	private File pastaImagens;

	public Imagens() {			  		 
		String pastaImagens = "/home/bruno/fotos";
		this.pastaImagens = new File(pastaImagens);   
		File destino = new File(pastaImagens);
		destino.mkdir();
	}

	public void salva(UploadedFile imagem, Imovel imovel) {		
		File destino = new File(pastaImagens, imovel.getIdImovel() + ".imagem");
		try {
			IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destino));
		} catch (IOException e) {
			throw new RuntimeException("Erro ao copiar imagem", e);
		}
	}
	
	public File mostra(Imovel imovel) {
		return new File(pastaImagens, imovel.getIdImovel() + ".imagem");
	}

}

Classe ImagensController (ficou bem enxuta):

@Resource
public class ImagensController {	

	private final Imagens imagens;
	private final Result result;
	
	public ImagensController(Imagens imagens, Result result) {	   
	    this.imagens = imagens;	 
	    this.result = result;
	}
	
	@Post 
	@Path("/imovel/{imovel.idImovel}/imagem")
	public void upload(Imovel imovel, final UploadedFile imagem) {	    
	    imagens.salva(imagem, imovel);
	    result.redirectTo(ImovelController.class).edita(imovel.getIdImovel());
	}
	
	 @Get 
	 @Path("/imovel/{imovel.idImovel}/imagem")
	 public File download(Imovel imovel) {
	     return imagens.mostra(imovel);
	 }

}

Após enviar a imagem, redireciona para a própria jsp de edição, o usuário clica em e redireciona para a jsp de listagem.

Ao invés de criar o form de envio da imagem no formulário, criei na página de edição, ficou conforme está na apostila da Caelum:

<form action="<c:url value="/imovel/${imovel.idImovel }/imagem"/>" method="POST" enctype="multipart/form-data">
    <fieldset>
        <legend>Upload de Imagem</legend>
        <input type="file" name="imagem" />
        <button type="submit">Enviar</button>
    </fieldset>
</form>

Consegui de primeira, pois todo o código estava pronto, bastava remover aquela taglib do form do formulário.
Fica ai o código pra quem precisar. Claro que pode ser melhorado, falta ainda a parte de validação da imagem, pode incluir a parte de redimensionamento e também alguma forma de criar galeria de imagem, pois da forma que está só vai uma imagem, se o usuário clicar de novo no upload de imagem, vai sobrescrever a existente. =/

Na listagem estou usando o framework Displaytag, e para listar a imagem no grid fiz assim:

<display:table name="${imovelList}" pagesize="5" id="imovel" requestURI="/Imobiliaria/imovel/lista" export="true">
 <display:column>${imovel_rowNum}</display:column>
 <display:column title="Imagem"><img src="<c:url value="/imovel/${imovel.idImovel}/imagem"/>" width="100" height="100"/></display:column>  
  <display:column property="codImovel" title="Codigo" />
  <display:column property="titulo" title="Titulo" />
  <display:column property="bairro" title="Bairro" />
  <display:column property="valor" title="Valor" />
  <display:column property="area" title="Área" />   
  <display:column title="Remover"><a href="remove?idImovel=${imovel.idImovel}">remover</a></display:column>  
  <display:column title="Alterar"><a href="edita?idImovel=${imovel.idImovel}">alterar</a></display:column>  
</display:table>

Abraço!!!

Ressuscitando o topico para resolver uma dúvida. Talvez seja até besteira, mas…

Consigo fazer upload de mais de um arquivo ao mesmo tempo? O Vraptor aceita algo como:


public void uploadFile(UploadedFile[] arquivos) { 
...
}

até aceita, se eu não me engano…

mas prefira nesse caso usar algum plugin javascript, como o JQuery Uploadify

Agora estou tendo o seguinte erro no Jboss 6.0.0:

17:41:35,151 ERROR [br.com.simuquiz.web.listener.ErrorFilter] MAIN ERROR [ID1315514495109]: : br.com.caelum.vraptor.InterceptionException: java.lang.NullPointerException
	at br.com.caelum.vraptor.interceptor.multipart.Servlet3MultipartInterceptor.getParts(Servlet3MultipartInterceptor.java:147) [:]
	at br.com.caelum.vraptor.interceptor.multipart.Servlet3MultipartInterceptor.intercept(Servlet3MultipartInterceptor.java:100) [:]
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) [:]
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53) [:]
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70) [:]
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) [:]
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56) [:]
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89) [:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5]
	at br.com.simuquiz.web.listener.TraceFilter.doFilter(TraceFilter.java:50) [:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5]
	at br.com.simuquiz.web.listener.ErrorFilter.doFilter(ErrorFilter.java:45) [:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5]
	at br.com.simuquiz.web.listener.EncodingFilter.doFilter(EncodingFilter.java:34) [:]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.20100911-M5]
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.20100911-M5]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [:6.0.0.20100911-M5]
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.20100911-M5]
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.20100911-M5]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.20100911-M5]
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.20100911-M5]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.20100911-M5]
	at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.20100911-M5]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.20100911-M5]
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.20100911-M5]
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [:6.0.0.20100911-M5]
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.20100911-M5]
	at java.lang.Thread.run(Thread.java:619) [:1.6.0_16]
Caused by: java.lang.NullPointerException
	at org.apache.catalina.connector.Request.getParts(Request.java:3210) [:6.0.0.20100911-M5]
	at org.apache.catalina.connector.RequestFacade.getParts(RequestFacade.java:1112) [:6.0.0.20100911-M5]
	at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:347) [:1.0.0.Beta2]
	at br.com.caelum.vraptor.interceptor.multipart.Servlet3MultipartInterceptor.getParts(Servlet3MultipartInterceptor.java:138) [:]
	... 34 more

tenta colocar o jar do commons-fileupload no classpath

Eu fiquei muito curioso pelo NullPointerException. O Jboss 6.0 não implementa corretamente a JSR315, por isso que quando você faz um request.getParts dá esse NullPointerException. De qualquer forma é algo que deveria ser validado.

Mas se você fizer o que o Lucas falou, o VRaptor irá dar preferência a usar o commons-fileupload, que funciona 100% no JBoss 6.0 com VRaptor.

Qual a versão do VRaptor você está usando?