[Resolvido] Atualizando para o vraptor 3.3.0

Olá,

estou atualizando o meu projeto do vraptor 3.2.0 para o 3.3.0. É um projeto do App Engine.
Estou tendo alguns probleminhas nessa atualização.

Inicialmente, apenas atualizei para o 3.3.0 e rodei o maven. Foi feito o download de algumas dependencias e beleza. jcommom e jfreechart eu acho.
ao startar o servidor tive um erro:

java.lang.NoClassDefFoundError: org/scannotation/AnnotationDB at br.com.caelum.vraptor.scan.ScannotationComponentScanner.createAnnotationDB(ScannotationComponentScanner.java:186) at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanWebInfClasses(ScannotationComponentScanner.java:67) at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scan(ScannotationComponentScanner.java:54) at br.com.caelum.vraptor.scan.WebAppBootstrapFactory.create(WebAppBootstrapFactory.java:65) at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:83) at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110) at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662) at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart(Server.java:224) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:185) at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:149) at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:219) at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164) at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48) at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113) at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89) Caused by: java.lang.ClassNotFoundException: org.scannotation.AnnotationDB at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:151) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 27 more

Vi que esta classe pertencia à net.sf.scannotation que é uma dependencia opcional dentro do vraptor 3.3.0.
Mesmo assim coloquei a dependencia no meu pom.xml, rodei o mvn e executei denovo o servidor.
Levantou OK, porém ao acessar a url no browser foi me retornado o erro:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appEngineMultipartInterceptor': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.gae.AppEngineMultipartInterceptor]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.<init>(Ljavax/servlet/http/HttpServletRequest;Lbr/com/caelum/vraptor/http/MutableRequest;Lbr/com/caelum/vraptor/interceptor/multipart/MultipartConfig;Lbr/com/caelum/vraptor/Validator;)V at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:288) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329) at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:398) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:388) at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1140) at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:87) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:47) 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.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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.gae.AppEngineMultipartInterceptor]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.<init>(Ljavax/servlet/http/HttpServletRequest;Lbr/com/caelum/vraptor/http/MutableRequest;Lbr/com/caelum/vraptor/interceptor/multipart/MultipartConfig;Lbr/com/caelum/vraptor/Validator;)V at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:108) at org.springframework.beans.factory.support.ConstructorResolver$1.run(ConstructorResolver.java:274) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:272) ... 48 more Caused by: java.lang.NoSuchMethodError: br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.<init>(Ljavax/servlet/http/HttpServletRequest;Lbr/com/caelum/vraptor/http/MutableRequest;Lbr/com/caelum/vraptor/interceptor/multipart/MultipartConfig;Lbr/com/caelum/vraptor/Validator;)V at br.com.caelum.vraptor.gae.AppEngineMultipartInterceptor.<init>(AppEngineMultipartInterceptor.java:37) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance_(Runtime.java:112) at com.google.appengine.tools.development.agent.runtime.Runtime.newInstance(Runtime.java:120) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126) ... 52 more

Lembrando que o meu ‘vraptor-gae.jar’ aí está nas libs.
Fica aí a dúvida sobre a dependencia opcional e sobre essa ultima pilha, se puderem ajudar.

Valeu!

O Scannotation é dependencia obrigatória para o VRaptor. Não conheço o Maven, não sei como ele diz que algo é obrigatório ou opcional.

Esse erro é bem estranho. Realmente o construtor do componente de upload mudou, mas se você está com os dois jars do VRaptor na versão 3.3 deveria estar funcionando ok. Dê uma olhada se você não tem um jar de uma versão antiga do VRaptor.

acabamos esquecendo de tirar o optional do scannotations no maven =(

usa o vraptor-gae.jar que está dentro do blank-project-gae-3.3.0

Beleza, funcionou.
Eu não tinha trocado o para o novo vraptor-gae.jar do blank-project-gae.

scannotations só setei no maven, sem problemas.

Só mais uma pequena dúvida… o que é o gmultipart.jar que vem no blank-project-gae.
Ele é obrigatório para projetos do appengine?

Muito obrigado!

[quote=Mr_Arthur]Beleza, funcionou.
Eu não tinha trocado o para o novo vraptor-gae.jar do blank-project-gae.

scannotations só setei no maven, sem problemas.

Só mais uma pequena dúvida… o que é o gmultipart.jar que vem no blank-project-gae.
Ele é obrigatório para projetos do appengine?

Muito obrigado![/quote]

É um jar para suporte a upload no GAE/J.

valeu garcia e lucas!

Senhores,

Estou com um problema similar…Estou configurando um projeto Vraptor+Maven. A versão do vRaptor que estou usando é a 3.5.3…quando tento subir o projeto recebo a mensagem de erro:

Nov 11, 2013 7:05:28 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /Users/marcoscorrea/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
Nov 11, 2013 7:05:29 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:AreaDoFornecedor’ did not find a matching property.
Nov 11, 2013 7:05:29 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“http-bio-8080”]
Nov 11, 2013 7:05:29 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“ajp-bio-8009”]
Nov 11, 2013 7:05:29 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1857 ms
Nov 11, 2013 7:05:29 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Nov 11, 2013 7:05:29 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.37
Nov 11, 2013 7:05:30 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/Users/marcoscorrea/Documents/apache-tomcat-7.0.37/wtpwebapps/AreaDoFornecedor/WEB-INF/lib/jsp-api-2.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/el/Expression.class
Nov 11, 2013 7:05:30 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/Users/marcoscorrea/Documents/apache-tomcat-7.0.37/wtpwebapps/AreaDoFornecedor/WEB-INF/lib/servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Nov 11, 2013 7:05:33 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [282] milliseconds.
Nov 11, 2013 7:05:33 PM org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter vraptor
java.lang.NoClassDefFoundError: org/scannotation/AnnotationDB
at br.com.caelum.vraptor.scan.ScannotationComponentScanner.createAnnotationDB(ScannotationComponentScanner.java:186)
at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scanWebInfClasses(ScannotationComponentScanner.java:68)
at br.com.caelum.vraptor.scan.ScannotationComponentScanner.scan(ScannotationComponentScanner.java:55)
at br.com.caelum.vraptor.scan.WebAppBootstrapFactory.scannerFor(WebAppBootstrapFactory.java:81)
at br.com.caelum.vraptor.scan.WebAppBootstrapFactory.create(WebAppBootstrapFactory.java:51)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:83)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:119)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:113)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:281)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4656)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5309)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.scannotation.AnnotationDB
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
… 21 more

Nov 11, 2013 7:05:33 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
Nov 11, 2013 7:05:33 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/AreaDoFornecedor] startup failed due to previous errors
Nov 11, 2013 7:05:33 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /Users/marcoscorrea/Documents/apache-tomcat-7.0.37/webapps/docs
Nov 11, 2013 7:05:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /Users/marcoscorrea/Documents/apache-tomcat-7.0.37/webapps/examples
Nov 11, 2013 7:05:34 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Nov 11, 2013 7:05:34 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Nov 11, 2013 7:05:34 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded(‘org.apache.jasper.compiler.TldLocationsCache’, ‘org.apache.jasper.compiler.TldLocationsCache@3a324fc’)
Nov 11, 2013 7:05:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /Users/marcoscorrea/Documents/apache-tomcat-7.0.37/webapps/host-manager
Nov 11, 2013 7:05:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /Users/marcoscorrea/Documents/apache-tomcat-7.0.37/webapps/manager
Nov 11, 2013 7:05:34 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /Users/marcoscorrea/Documents/apache-tomcat-7.0.37/webapps/ROOT
Nov 11, 2013 7:05:34 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [“http-bio-8080”]
Nov 11, 2013 7:05:34 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler [“ajp-bio-8009”]
Nov 11, 2013 7:05:34 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 5187 ms

Preciso resolver esse BUG…alguém pode me dar um HELP?

Tks

java.lang.NoClassDefFoundError: org/scannotation/AnnotationDB

esse erro geralmente é falta de jar…
no caso o do scannotation.

Lucas,

coloquei a dependência da scannotation e ao tentar subir deu esse outro erro:

SEVERE: Exception starting filter vraptor
java.lang.ClassNotFoundException: br.com.caelum.vraptor.VRaptor
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1713)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:107)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4656)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5309)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

os jars estão em WEB-INF/lib?

Os jars estão todos dentro de Maven Dependencies.

estão marcados pra serem exportados para o war?
o jar do VRaptor tb está em Maven Dependencies?

Lucas, vamos por partes…hehe…

1 - O jar do vraptor 3.5.3 está sim em Maven Dependencies.
2 - Como faço pra saber se estão marcados pra serem exportados para o war?

verifica se o pom.xml é de uma web app (packaging tem que ser war)

assim deveria já funcionar… se não, vc pode clicar com o botão direito no projeto >> Properties >> Deployment Assembly e adicionar todos os jars das maven dependencies.