Vraptor - Upload

Boa noite! Estou com um problema igualzinho do cara que criou o tópico: Eu passo o file como parâmetro mas ele vem null… Porém como já pesquisei em 43737662834 tópicos eu vi que o problema era o bendito jar ou o povo esqueceu de colocar o multipart/form-data. Mas não sei o que fazer pois está tudo perfeito(Perfeito mesmo) não tem problema nenhum com os jars.
Uso netbeans, VRaptor 3.3.1 e o glassfish como servidor.

Página jsp:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Upload</title>
    <script language="JavaScript">
      <!--
      function ChecaCampos() {
        var form = document.forms[0];
        
        if (form.imagem.value == "") {
          alert("Favor escolher uma imagem!");
          
          return false;
        } else {
          return true;
        }
      }
      -->
      <!--
      if (${requestScope.LoginInvalido == true}) {
        alert("Nome de usuário ou senha inválidos!");
      }
      -->
    </script>
  </head>
  <body>
    <c:import url="/templates/header.jsp"/>
    <table width="578" height="144" border="0" align="center">
      <tr>
        <td height="38" colspan="2" align="center" valign="top"><p><font size="+3">Upload de foto</font></p></td>
      </tr>
      <form action="UploadCapa.brz" enctype="multipart/form-data" method="post" onsubmit="return ChecaCampos();">
        <tr>
          <td width="269" height="21" align="right"><label for="Foto">Foto:</label></td>
          <td width="299">
            <input type="file" name="imagem" id="imagem">
          </td>
        </tr>
        <tr>
          <td height="69" align="right">&nbsp;</td>
          <td width="299" valign="top">
            <input type="submit" name="up" id="Upload" value="Upload">
          </td>
        </tr>
      </form>
    </table>
    <c:import url="/templates/footer.jsp"/>
  </body>
</html>

Método do VRaptor:

@Resource
public class AlbunsController {

  private final Result result;
  private final AlbumDAO dao;
  private final HttpServletRequest request;
  private final File img;

  public AlbunsController(Result result, AlbumDAO dao, HttpServletRequest request, ServletContext context) {
    this.img = new File(context.getRealPath("/img"));

    this.result = result;
    this.dao = dao;
    this.request = request;
  }
  
  @Path("/admin/UploadCapa.brz")
  public void UploadCapa(UploadedFile imagem) {
    File destino = new File(img, imagem.getFileName());

    try {
      IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(destino));
    } catch (IOException e) {
      throw new RuntimeException("Não foi possível copiar a imagem!");
    }
  }
}

Erro:

br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NullPointerException
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:89)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.intercept(CommonsUploadMultipartInterceptor.java:131)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at Filtros.ManipulaUsuarios.doFilter(ManipulaUsuarios.java:37)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at Controllers.AlbunsController.UploadCapa(AlbunsController.java:79)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	... 55 more

Obrigado!

vc colocou o jar da commons-fileupload no WEB-INF/lib?

liga o log de info do vraptor, e ve se aparece alguma mensagem sobre multipart

o jar está certinho. Acho que achei o problema mais não sei como resolver… Apareceu um negocio que excedeu o limite de tamanho olha os infos:

Informações: 18:28:10,277 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:10,610 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:10,620 DEBUG [DefaultResourceTranslator] trying to access /login.brz

Informações: 18:28:10,640 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: RedirectController.loginRedirectController.login()]

Informações: 18:28:10,737 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:10,785 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
Informações: 18:28:11,270 DEBUG [ValidatorFactoryCreator] Initializing JSR303 factory for bean validation

Informações: 18:28:11,330 DEBUG [JSR303ValidatorFactory] Initializing JSR303 Validator

Informações: 18:28:11,354 DEBUG [MessageInterpolatorFactory] Initializing JSR303 MessageInterpolator

Informações: 18:28:11,486 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Informações: 18:28:11,646 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:11,650 DEBUG [ExecuteMethodInterceptor] Invoking RedirectController.login()

Informações: 18:28:11,731 DEBUG [DefaultPageResult   ] forwarding to /login.jsp

Informações: 18:28:11,743 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/login.jsp 

Informações: 18:28:13,040 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor

Informações: 18:28:13,055 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.

Informações: 18:28:13,092 DEBUG [VRaptor             ] VRaptor ended the request

Informações: 18:28:13,122 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/img/Brazcom.png 

Informações: 18:28:13,109 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/img/Footer.png 

Informações: 18:28:13,142 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/css/menu/menu_style.css 

Informações: 18:28:13,201 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/css/menu/images/seperator.gif 

Informações: 18:28:17,078 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:17,090 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:17,093 DEBUG [DefaultResourceTranslator] trying to access /VerificaLogin.brz

Informações: 18:28:17,094 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: LoginController.VerificaLoginLoginController.VerificaLogin(Login)]

Informações: 18:28:17,100 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:17,104 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: 18:28:17,128 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Grave: log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
Grave: log4j:WARN Please initialize the log4j system properly.
Grave: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Informações: 18:28:21,550 DEBUG [LazyInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor

Informações: 18:28:21,574 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for LoginController.VerificaLogin(Login) as [login]

Informações: 18:28:21,668 DEBUG [OgnlParametersProvider] Applying nomeUsuario with [admin]

Informações: 18:28:21,750 DEBUG [OgnlParametersProvider] Applying senha with [brazcom]

Informações: 18:28:21,759 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: LoginController.VerificaLoginLoginController.VerificaLogin(Login)] are [Entidades.Login[ nomeUsuario=admin ]]

Informações: 18:28:21,765 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:21,769 DEBUG [ExecuteMethodInterceptor] Invoking LoginController.VerificaLogin(Login)

Informações: 18:28:21,933 DEBUG [DefaultPageResult   ] forwarding to /index.jsp

Informações: 18:28:21,937 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/index.jsp 

Informações: 18:28:22,324 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor

Informações: 18:28:22,337 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.

Informações: 18:28:22,369 DEBUG [VRaptor             ] VRaptor ended the request

Informações: 18:28:24,170 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/css/menu/images/hover.gif 

Informações: 18:28:24,183 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/css/menu/images/sub_sep.gif 

Informações: 18:28:25,048 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:25,060 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:25,063 DEBUG [DefaultResourceTranslator] trying to access /albuns.brz

Informações: 18:28:25,064 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: AlbunsController.albunsAlbunsController.albuns()]

Informações: 18:28:25,073 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:25,078 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: 18:28:25,097 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Informações: 18:28:25,274 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:25,277 DEBUG [ExecuteMethodInterceptor] Invoking AlbunsController.albuns()

Informações: 18:28:25,323 DEBUG [DefaultPageResult   ] forwarding to /albuns.jsp

Informações: 18:28:25,327 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/albuns.jsp 

Informações: 18:28:25,609 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor

Informações: 18:28:25,656 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.

Informações: 18:28:25,657 DEBUG [VRaptor             ] VRaptor ended the request

Informações: 18:28:26,747 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/css/menu/images/hover_sub.gif 

Informações: 18:28:27,224 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:27,233 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:27,237 DEBUG [DefaultResourceTranslator] trying to access /admin/CadAlbum.brz

Informações: 18:28:27,240 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: RedirectController.CadAlbumRedirectController.CadAlbum()]

Informações: 18:28:27,246 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:27,249 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: 18:28:27,268 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Informações: 18:28:27,277 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:27,280 DEBUG [ExecuteMethodInterceptor] Invoking RedirectController.CadAlbum()

Informações: 18:28:27,287 DEBUG [DefaultPageResult   ] forwarding to /admin/CadAlbum.jsp

Informações: 18:28:27,292 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/admin/CadAlbum.jsp 

Informações: 18:28:27,547 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor

Informações: 18:28:27,563 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.

Informações: 18:28:27,591 DEBUG [VRaptor             ] VRaptor ended the request

Informações: 18:28:30,238 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:30,251 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:30,255 DEBUG [DefaultResourceTranslator] trying to access /admin/CadAlbumA.brz

Informações: 18:28:30,256 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: AlbunsController.CadAlbumAAlbunsController.CadAlbumA(Album, boolean)]

Informações: 18:28:30,261 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:30,268 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: 18:28:30,282 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor CommonsUploadMultipartInterceptor

Informações: 18:28:30,285  INFO [CommonsUploadMultipartInterceptor] Request contains multipart data. Try to parse with commons-upload.

Informações: 18:28:30,293 DEBUG [CommonsUploadMultipartInterceptor] Using repository C:\Users\occ\AppData\Local\Temp for file upload

Informações: 18:28:30,403 DEBUG [CommonsUploadMultipartInterceptor] Found 4 attributes in the multipart form submission. Parsing them.

Informações: 18:28:30,446 DEBUG [CommonsUploadMultipartInterceptor] album.nome is a field

Informações: 18:28:30,464 DEBUG [CommonsUploadMultipartInterceptor] album.descricao is a field

Informações: 18:28:30,466 DEBUG [CommonsUploadMultipartInterceptor] UploadCapa is a field

Informações: 18:28:30,467 DEBUG [CommonsUploadMultipartInterceptor] Enviar is a field

Informações: 18:28:30,490 DEBUG [VRaptorRequest      ] Setting album.nome with [teste]

Informações: 18:28:30,493 DEBUG [VRaptorRequest      ] Setting album.descricao with []

Informações: 18:28:30,494 DEBUG [VRaptorRequest      ] Setting UploadCapa with [on]

Informações: 18:28:30,495 DEBUG [VRaptorRequest      ] Setting Enviar with [Enviar]

Informações: 18:28:30,496 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Informações: 18:28:30,653 DEBUG [LazyInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor

Informações: 18:28:30,657 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for AlbunsController.CadAlbumA(Album, boolean) as [album, UploadCapa]

Informações: 18:28:30,658 DEBUG [OgnlParametersProvider] Applying nome with [teste]

Informações: 18:28:30,660 DEBUG [OgnlParametersProvider] Applying descricao with []

Informações: 18:28:30,672 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: AlbunsController.CadAlbumAAlbunsController.CadAlbumA(Album, boolean)] are [Entidades.Album[ albumID=null ], true]

Informações: 18:28:30,680 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:30,683 DEBUG [ExecuteMethodInterceptor] Invoking AlbunsController.CadAlbumA(Album, boolean)

Informações: 18:28:30,689 DEBUG [DefaultPageResult   ] forwarding to /admin/UploadAlbum.jsp

Informações: 18:28:30,693 DEBUG [DefaultStaticContentHandler] Deferring request to container: /Fotos/admin/UploadAlbum.jsp 

Informações: 18:28:31,067 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor

Informações: 18:28:31,069 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.

Informações: 18:28:31,070 DEBUG [VRaptor             ] VRaptor ended the request

Informações: 18:28:34,972 DEBUG [VRaptor             ] VRaptor received a new request

Informações: 18:28:34,981 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor

Informações: 18:28:34,985 DEBUG [DefaultResourceTranslator] trying to access /admin/UploadCapa.brz

Informações: 18:28:34,986 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: AlbunsController.UploadCapaAlbunsController.UploadCapa(UploadedFile)]

Informações: 18:28:34,991 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor

Informações: 18:28:34,996 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor

Informações: 18:28:35,010 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor CommonsUploadMultipartInterceptor

Informações: 18:28:35,013  INFO [CommonsUploadMultipartInterceptor] Request contains multipart data. Try to parse with commons-upload.

Informações: 18:28:35,015 DEBUG [CommonsUploadMultipartInterceptor] Using repository C:\Users\occ\AppData\Local\Temp for file upload

Informações: 18:28:35,039  WARN [CommonsUploadMultipartInterceptor] The file size limit was exceeded.
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (4311417) exceeds the configured maximum (2097152)
	at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:937)
	at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
	at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)
	at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
	at br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.intercept(CommonsUploadMultipartInterceptor.java:97)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at Filtros.ManipulaUsuarios.doFilter(ManipulaUsuarios.java:37)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)

Informações: 18:28:35,078 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor

Informações: 18:28:35,285 DEBUG [LazyInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor

Informações: 18:28:35,287 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for AlbunsController.UploadCapa(UploadedFile) as [imagem]

Informações: 18:28:35,294 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: AlbunsController.UploadCapaAlbunsController.UploadCapa(UploadedFile)] are [null]

Informações: 18:28:35,299 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor

Informações: 18:28:35,300 DEBUG [ExecuteMethodInterceptor] Invoking AlbunsController.UploadCapa(UploadedFile)

Informações: 18:28:35,302 DEBUG [DefaultExceptionMapper] find for exception class java.lang.NullPointerException

Advertência: StandardWrapperValve[default]: PWC1406: Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.NullPointerException
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:89)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.intercept(CommonsUploadMultipartInterceptor.java:131)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:23)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at Filtros.ManipulaUsuarios.doFilter(ManipulaUsuarios.java:37)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at Controllers.AlbunsController.UploadCapa(AlbunsController.java:79)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	... 55 more

Peguei um pouco das infos antes do erro. Você sabe como aumenta o tamanho máximo do arquivo?

se o tamanho estoura ele vai null sim… a primeira linha do seu método do upload tem que ser algo do tipo:

validator.onErrorRedirectTo(this).formulario();

assim ele redireciona com erro de validação

Obrigado cara! Consegui resolver o problema aumentando o limite máximo do upload.

Obrigado!

Pessoa,

Consegui fazer o upload dos arquivos. Porém, quando o sistema vai rodar no servidor de verdade está aparecendo o erro "Permission Denied". O significado obviamente eu sei. Mas como posso solucioná-lo, sem a necessidade de alteração no servidor(Ele não é meu)?

desde já obrigado,

tá dando permission denied aonde? na pasta que vc tá tentando salvar, ou antes de chegar no seu método de upload?

A exception ocorre quando ele tenta salvar na pasta que eu escolhi.

a pasta que você escolheu está sem permissão aparentemente… tenta apontar pra uma pasta que você tem acesso

Na verdade, essa pasta fui eu quem criou, ou seja tenho acesso a ela. :stuck_out_tongue:

porém tem um detalhe. Quando eu pego o ContextPath o resultado é home/login/public_html/fotos. Dessa forma acontece a exception “Permission Denied”.

Se eu escolher o caminho explicitamente, por exemplo, public_html/fotos, aparece uma mensagem informando que não é possível encontrar a pasta. :stuck_out_tongue:

vc precisa colocar o caminho inteiro, começando com / (/home/login/blah)

ou se for uma pasta dentro do servidor vc precisa usar servletContext.getRealPath("/pasta")

Lucas,

O código que eu estou utilizando é este:

                File root = new File(context.getRealPath("/fotos"));
            	
                File dir = new File(root.getCanonicalPath() + File.separator);
                
                IOUtils.copy(imagem.getFile(), new FileOutputStream(new File(root.getCanonicalPath(), imagem.getFileName())));

[quote=malayout]Funcionou.

malayout, tenho uma duvida. Como ficaria a implementação no JSP? Sera que poderia colocar o JSP para eu dar uma olhada?

Obrigado.

			if(arquivo == null) {
				System.out.println("Erro upload");
			}
			else
			{	File destino = new File("c:\\repositorio\\"+arquivo.getFileName());
				destino.createNewFile();
				InputStream stream = arquivo.getFile();
				IOUtils.copy(stream,new FileOutputStream(destino));
				System.out.println("Upload Finish");
			}
			result.include("variable",arquivo.getFileName());

Obrigado pela ajuda.[/quote]