[RESOLVIDO][VRAPTOR 4] NullPointerException ao fazer upload

Olá grandes!

Ao tentar fazer um upload de um arquivo estou me deparando com um nullpointer… meu código html com o formulário é esse:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Send Files Ajax</title>
 
</head>

<body>
   <form action="http://localhost:9999/api/documentos" enctype="multipart/form-data" method="post">
        <input type="file"/>
        <input type="submit">
    </form>
</body>
</html>[/code]

[u]Meu controller ta assim:[/u]

[code]
@UploadSizeLimit(sizeLimit = 40 * 1024 * 1024, fileSizeLimit = 10 * 1024 * 1024)
	@Post("/api/documentos")
	public void atualizaFoto(UploadedFile photo) {
		System.out.println("================================FOTO=============");
		System.out.println("Tamanho: " + photo.getSize());
		System.out.println("Tipo: " + photo.getContentType());
		
		 try {
			File savedPhoto = new File("/path/to/photo/repository", photo.getFileName());
			photo.writeTo(savedPhoto);
			System.out.println("Absolut Path: " + savedPhoto.getAbsolutePath());
			result.use(Results.status()).ok();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
[/code]

No pom tenho estas dependencias:

[code]<dependency>  
            <groupId>commons-io</groupId>  
            <artifactId>commons-io</artifactId>  
            <version>2.4</version>  
        </dependency>  
          
        <dependency>  
            <groupId>commons-fileupload</groupId>  
            <artifactId>commons-fileupload</artifactId>  
            <version>1.3.1</version>  
        </dependency> 

Li de tudo no forum, pessoas com problemas similares ao meu, tentei aplicar as soluções mas de nada consegui…
Antes de eu postar a msg exibida no console, eh criado numa pasta temp um arquivo que eu acredito q seja a cópia do arquivo “upado”…

Abaixo ta o q é exibido no console:

15:12:42,488 DEBUG [DefaultControllerTranslator] trying to access /api/documentos
15:12:42,490 DEBUG [DefaultControllerTranslator] found controller [DefaultControllerMethod: public void br.com.bracode.controller.AssociadoController.atualizaFoto(br.com.caelum.vraptor.observer.upload.UploadedFile)]
15:12:42,527  INFO [CommonsUploadMultipartObserver] Request contains multipart data. Try to parse with commons-upload.
15:12:42,530 DEBUG [DefaultMultipartConfig] Using temporary directory as C:\Users\VICTOR~1\AppData\Local\Temp
15:12:42,531 DEBUG [CommonsUploadMultipartObserver] Using repository C:\Users\VICTOR~1\AppData\Local\Temp for file upload
15:12:42,531 DEBUG [CommonsUploadMultipartObserver] Setting file sizes: total=41943040, file=10485760
15:12:42,544 DEBUG [CommonsUploadMultipartObserver] Found 0 attributes in the multipart form submission. Parsing them.
15:12:42,545 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.bracode.controller.AssociadoController
15:12:42,545 DEBUG [CDIBasedContainer   ] beans for class br.com.bracode.controller.AssociadoController is [Managed Bean [class br.com.bracode.controller.AssociadoController] with qualifiers [@Any @Default]]
15:12:42,559 DEBUG [IogiParametersProvider] IogiParametersProvider is up
15:12:42,569 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.bracode.controller.AssociadoController.atualizaFoto(br.com.caelum.vraptor.observer.upload.UploadedFile) as [photo]
15:12:42,585 DEBUG [IogiParametersProvider] IogiParametersProvider is up
15:12:42,586 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for public void br.com.bracode.controller.AssociadoController.atualizaFoto(br.com.caelum.vraptor.observer.upload.UploadedFile) as [photo]
15:12:42,586 DEBUG [IogiParametersProvider] getParametersFor() called with parameters Parameters() and targets [Target(name=photo, type=interface br.com.caelum.vraptor.observer.upload.UploadedFile)].
15:12:42,605 DEBUG [DefaultConverters   ] found converter br.com.caelum.vraptor.observer.upload.UploadedFileConverter to br.com.caelum.vraptor.observer.upload.UploadedFile
15:12:42,606 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.caelum.vraptor.observer.upload.UploadedFileConverter
15:12:42,606 DEBUG [CDIBasedContainer   ] beans for class br.com.caelum.vraptor.observer.upload.UploadedFileConverter is [Managed Bean [class br.com.caelum.vraptor.observer.upload.UploadedFileConverter] with qualifiers [@Any @Default]]
15:12:42,633  WARN [JstlLocalization    ] couldn't find message bundle, creating an empty one
java.util.MissingResourceException: Can't find bundle for base name messages, locale pt_BR
	at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
	at java.util.ResourceBundle.getBundleImpl(Unknown Source)
	at java.util.ResourceBundle.getBundle(Unknown Source)
	at br.com.caelum.vraptor.core.JstlLocalization.extractUnsafeBundle(JstlLocalization.java:78)
	at br.com.caelum.vraptor.core.JstlLocalization.getBundle(JstlLocalization.java:69)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstance(MethodInjectionPoint.java:86)
	at org.jboss.weld.injection.producer.ProducerMethodProducer.produce(ProducerMethodProducer.java:96)
	at org.jboss.weld.injection.producer.AbstractMemberProducer.produce(AbstractMemberProducer.java:151)
	at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:183)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:69)
	at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:733)
	at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:789)
	at org.jboss.weld.injection.ParameterInjectionPointImpl.getValueToInject(ParameterInjectionPointImpl.java:76)
	at org.jboss.weld.injection.ConstructorInjectionPoint.getParameterValues(ConstructorInjectionPoint.java:138)
	at org.jboss.weld.injection.ConstructorInjectionPoint.newInstance(ConstructorInjectionPoint.java:68)
	at org.jboss.weld.injection.producer.AbstractInstantiator.newInstance(AbstractInstantiator.java:28)
	at org.jboss.weld.injection.producer.BasicInjectionTarget.produce(BasicInjectionTarget.java:85)
	at org.jboss.weld.injection.producer.BeanInjectionTarget.produce(BeanInjectionTarget.java:183)
	at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:149)
	at org.jboss.weld.context.AbstractContext.get(AbstractContext.java:96)
	at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:98)
	at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:78)
	at br.com.caelum.vraptor.validator.DefaultValidator$Proxy$_$$_WeldClientProxy.addAll(Unknown Source)
	at br.com.caelum.vraptor.observer.ParametersInstantiator.instantiate(ParametersInstantiator.java:91)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:90)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.start(Unknown Source)
	at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.com.bracode.util.EntityManagerFilter.doFilter(EntityManagerFilter.java:19)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
15:12:42,646 DEBUG [ParametersInstantiator] Conversion errors: []
15:12:42,646 DEBUG [ParametersInstantiator] Parameter values for [DefaultControllerMethod: public void br.com.bracode.controller.AssociadoController.atualizaFoto(br.com.caelum.vraptor.observer.upload.UploadedFile)] are [null]
15:12:42,652 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.bracode.util.AuthInterceptor
15:12:42,652 DEBUG [CDIBasedContainer   ] beans for class br.com.bracode.util.AuthInterceptor is [Managed Bean [class br.com.bracode.util.AuthInterceptor] with qualifiers [@Any @Default]]
15:12:42,664 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor AuthInterceptor$Proxy$_$$_WeldClientProxy
15:12:42,665 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor
15:12:42,665 DEBUG [CDIBasedContainer   ] beans for class br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor is [Managed Bean [class br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor] with qualifiers [@Any @Default]]
15:12:42,672 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor$Proxy$_$$_WeldClientProxy
15:12:42,672 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.caelum.vraptor.interceptor.FlashInterceptor
15:12:42,672 DEBUG [CDIBasedContainer   ] beans for class br.com.caelum.vraptor.interceptor.FlashInterceptor is [Managed Bean [class br.com.caelum.vraptor.interceptor.FlashInterceptor] with qualifiers [@Any @Default]]
15:12:42,688 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor$Proxy$_$$_WeldClientProxy
15:12:42,688 DEBUG [CDIBasedContainer   ] asking cdi to get instance for class br.com.bracode.util.CORSInterceptor
15:12:42,688 DEBUG [CDIBasedContainer   ] beans for class br.com.bracode.util.CORSInterceptor is [Managed Bean [class br.com.bracode.util.CORSInterceptor] with qualifiers [@Any @Default]]
15:12:42,692 DEBUG [AspectStyleInterceptorHandler] Invoking interceptor CORSInterceptor$Proxy$_$$_WeldClientProxy
15:12:42,696 DEBUG [DefaultResult       ] including attribute vmessages: br.com.caelum.vraptor.validator.Messages@4f79565e
15:12:42,696 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
15:12:42,696 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
15:12:42,696 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
15:12:42,696 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
15:12:42,696 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
15:12:42,696 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
15:12:42,714 DEBUG [ExecuteMethod       ] Invoking public void br.com.bracode.controller.AssociadoController.atualizaFoto(br.com.caelum.vraptor.observer.upload.UploadedFile)
================================FOTO=============
null
null
java.lang.NullPointerException
	at br.com.bracode.controller.AssociadoController.atualizaFoto(AssociadoController.java:57)
	at br.com.bracode.controller.AssociadoController$Proxy$_$$_WeldClientProxy.atualizaFoto(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at br.com.caelum.vraptor.core.DefaultReflectionProvider.invoke(DefaultReflectionProvider.java:42)
	at br.com.caelum.vraptor.core.DefaultReflectionProvider$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
	at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:82)
	at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:72)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.observer.ExecuteMethod.execute(ExecuteMethod.java:72)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:78)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
	at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack.next(DefaultSimpleInterceptorStack.java:49)
	at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
	at br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:77)
	at br.com.caelum.vraptor.interceptor.InterceptorExecutor$Proxy$_$$_WeldClientProxy.executeAround(Unknown Source)
	at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:98)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:75)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.bracode.util.AuthInterceptor.intercept(AuthInterceptor.java:39)
	at br.com.bracode.util.AuthInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.start(Unknown Source)
	at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.com.bracode.util.EntityManagerFilter.doFilter(EntityManagerFilter.java:19)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
jun 26, 2015 3:12:42 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [default] in context with path [/abase] threw exception [java.lang.NullPointerException] with root cause
java.lang.NullPointerException
	at br.com.bracode.controller.AssociadoController.atualizaFoto(AssociadoController.java:57)
	at br.com.bracode.controller.AssociadoController$Proxy$_$$_WeldClientProxy.atualizaFoto(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.vidageek.mirror.provider.java.PureJavaMethodReflectionProvider.invoke(PureJavaMethodReflectionProvider.java:38)
	at net.vidageek.mirror.invoke.MethodHandlerByMethod.withArgs(MethodHandlerByMethod.java:54)
	at br.com.caelum.vraptor.core.DefaultReflectionProvider.invoke(DefaultReflectionProvider.java:42)
	at br.com.caelum.vraptor.core.DefaultReflectionProvider$Proxy$_$$_WeldClientProxy.invoke(Unknown Source)
	at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:82)
	at br.com.caelum.vraptor.observer.ExecuteMethod$1.call(ExecuteMethod.java:72)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.observer.ExecuteMethod.execute(ExecuteMethod.java:72)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:78)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
	at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack.next(DefaultSimpleInterceptorStack.java:49)
	at br.com.caelum.vraptor.interceptor.DefaultSimpleInterceptorStack$Proxy$_$$_WeldClientProxy.next(Unknown Source)
	at br.com.caelum.vraptor.interceptor.InterceptorExecutor.executeAround(InterceptorExecutor.java:77)
	at br.com.caelum.vraptor.interceptor.InterceptorExecutor$Proxy$_$$_WeldClientProxy.executeAround(Unknown Source)
	at br.com.caelum.vraptor.interceptor.AspectStyleInterceptorHandler.execute(AspectStyleInterceptorHandler.java:85)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:98)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:75)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.bracode.util.AuthInterceptor.intercept(AuthInterceptor.java:39)
	at br.com.bracode.util.AuthInterceptor$Proxy$_$$_WeldClientProxy.intercept(Unknown Source)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler$1.call(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.Try.run(Try.java:18)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.executeSafely(ToInstantiateInterceptorHandler.java:68)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:83)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.start(DefaultInterceptorStack.java:93)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack$Proxy$_$$_WeldClientProxy.start(Unknown Source)
	at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:93)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.com.bracode.util.EntityManagerFilter.doFilter(EntityManagerFilter.java:19)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Achei tão simples o exemplo do livro… Mas na hr de fazer, infelizmente tive esse problema… Desde já agradeço!

O seu <input type=“file”/> precisa ter um nome para ele saber aonde ele deve ser colocado.

&lt;input type="file" name="photo" /&gt;  

[quote=Rafael Guerreiro]O seu <input type=“file”/> precisa ter um nome para ele saber aonde ele deve ser colocado.

&lt;input type="file" name="photo" /&gt; [/quote]

Muitíssimo obrigado Rafael, ainda nem acredito que era só esse detalhe!

Mas só funciona com o método Post? Fui tentar fazer um Put e não da muito certo… o browser faz um GET… Pra ficar mais claro:

&lt;form action="http://localhost:9999/api/associados/documentos" enctype="multipart/form-data" method="put" &gt;
    &lt;input type="file" name="photo[]" multiple/&gt;
    &lt;input type="submit"&gt;
&lt;/form&gt;

Imagem da requisicao do browser em anexo ou aqui:

16:07:26,130 DEBUG [DefaultControllerTranslator] trying to access /api/associados/documentos
16:07:26,131 DEBUG [RequestHandlerObserver] Method GET is not allowed for requested URI. Allowed Methods are [PUT, OPTIONS]
br.com.caelum.vraptor.http.route.MethodNotAllowedException: Method GET is not allowed for requested URI. Allowed Methods are [PUT, OPTIONS]
	at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:136)
	at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:111)
	at br.com.caelum.vraptor.http.route.DefaultRouter$Proxy$_$$_WeldClientProxy.parse(Unknown Source)
	at br.com.caelum.vraptor.http.DefaultControllerTranslator.translate(DefaultControllerTranslator.java:63)
	at br.com.caelum.vraptor.http.DefaultControllerTranslator$Proxy$_$$_WeldClientProxy.translate(Unknown Source)
	at br.com.caelum.vraptor.observer.RequestHandlerObserver.handle(RequestHandlerObserver.java:91)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)
	at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)
	at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)
	at org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:165)
	at org.jboss.weld.event.ObserverNotifier.notifyObservers(ObserverNotifier.java:119)
	at org.jboss.weld.event.ObserverNotifier.fireEvent(ObserverNotifier.java:112)
	at org.jboss.weld.event.EventImpl.fire(EventImpl.java:83)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at br.com.bracode.abase.util.EntityManagerFilter.doFilter(EntityManagerFilter.java:19)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
16:07:26,132 DEBUG [DefaultResult       ] including attribute vmessages: br.com.caelum.vraptor.validator.Messages@513e6cfa
16:07:26,132 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
16:07:26,132 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
16:07:26,132 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
16:07:26,133 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
16:07:26,133 DEBUG [CDIBasedContainer   ] asking cdi to get instance for interface br.com.caelum.vraptor.view.Status
16:07:26,133 DEBUG [CDIBasedContainer   ] beans for interface br.com.caelum.vraptor.view.Status is [Managed Bean [class br.com.caelum.vraptor.view.DefaultStatus] with qualifiers [@Any @Default]]
16:07:26,133 DEBUG [VRaptor             ] VRaptor ended the request

Obrigado desde já


É, só vai funcionar para POST.

Mas vou te adiantando, PUT e DELETE são, na verdade, POST. Então, tecnicamente, funciona para PUT, DELETE e POST.

O problema é que os browsers não estão preparados para isso, então precisamos dar uma hackeada.

Faça assim no seu form:

&lt;form action="http://localhost:9999/api/associados/documentos" enctype="multipart/form-data" method="post" &gt;&lt;!-- manda post --&gt;
    &lt;input type="file" name="photo" /&gt;  
    &lt;button type="submit" name="_method" value="PUT"&gt;Enviar&lt;/button&gt; &lt;!-- Assim, você passa um parametro "_method" trocando o tipo da requisição. Dessa forma, o vraptor entende que é um put. --&gt;
&lt;/form&gt;

Outra coisa, se você quer mandar várias fotos, verifique direitinho, pois não são todos os browsers que dão suporte à isso.