[Resolvido] Atualizando para o vraptor 3.3.0

13 respostas
Mr_Arthur

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!

13 Respostas

G

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.

Lucas_Cavalcanti

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

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!

G

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!

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

Mr_Arthur

valeu garcia e lucas!

mandrecorrea

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

Lucas_Cavalcanti

java.lang.NoClassDefFoundError: org/scannotation/AnnotationDB

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

mandrecorrea

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)
Lucas_Cavalcanti

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

mandrecorrea

Os jars estão todos dentro de Maven Dependencies.

Lucas_Cavalcanti

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

mandrecorrea

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?

Lucas_Cavalcanti

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.

Criado 2 de fevereiro de 2011
Ultima resposta 11 de nov. de 2013
Respostas 13
Participantes 4