ao fazer os exercicios 6.10 da apostila fj-28 da caelum, ao que me parece, esta tudo normal, mas quando inicio o tomcat 7 recebo um erro e aseguinte stacktrace,
18/10/2010 15:27:25 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: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/…/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib
18/10/2010 15:27:26 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:agenda’ did not find a matching property.
18/10/2010 15:27:26 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:tarefas’ did not find a matching property.
18/10/2010 15:27:26 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:agenda2’ did not find a matching property.
18/10/2010 15:27:26 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:controle-produtos’ did not find a matching property.
18/10/2010 15:27:26 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:fj28’ did not find a matching property.
18/10/2010 15:27:28 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
18/10/2010 15:27:28 org.apache.coyote.ajp.AjpProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8009
18/10/2010 15:27:28 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 5962 ms
18/10/2010 15:27:28 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
18/10/2010 15:27:28 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.2
18/10/2010 15:27:37 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter vraptor
java.lang.IllegalArgumentException: You don’t have any DI container jars on your classpath. Please choose one of the lib/containers jars and put it on your classpath.
at br.com.caelum.vraptor.config.BasicConfiguration.getProviderType(BasicConfiguration.java:101)
at br.com.caelum.vraptor.config.BasicConfiguration.getProvider(BasicConfiguration.java:70)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:250)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:368)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4193)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4801)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
18/10/2010 15:27:37 org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
18/10/2010 15:27:37 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/fj28] startup failed due to previous errors
18/10/2010 15:27:37 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/fj28] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
java.lang.IllegalArgumentException: You don't have any DI container jars on your classpath. Please choose one of the lib/containers jars and put it on your classpath.
no VRaptor 3.2.0 o container de DI não vem na pasta lib/mandatory mais, pq vc precisa escolher qual dos três vai usar.
no zip do VRaptor, pegue todos os jars da pasta lib/containers/spring e coloque na sua aplicação (WEB-INF/lib)
mas tem razão, a mensagem está meio confusa mesmo =( vou mudar… tem alguma sugestão de qual é a melhor mensagem?
PS: a apostila tá um pouco desatualizada em algumas partes… o VRaptor 3.2.0 que introduziu essa mudança foi lançado há menos de 2 semanas, desculpe por isso
ah, tudo bem, compreendo, estou um pouco acostumado com struts2, e o vraptor 3.2.0 esta sendo uma boa novidade… a apostila esta realmente um pouco desatualizada, mas pra quem ainda é iniciante em javaWeb esta sendo uma boa… sobre a stacktrace… acho que esta parte “Please choose one of the lib/containers jars and put it on your classpath.” ficou um pouco no “ar” pra quem pega o bonde andando…, que este diretorio vem no download do vraptor… eu fiquei pensando muito tempo aonde estaria esta pasta… agora q voce me disse
You don’t have any DI container jars on your classpath. You can find them on vraptor-3.x.x.zip, so you must put one of the lib/containers/ jars on your classpath, where is your preferred container.
ah, sim, agora ficou bem esclarecido pra qualquer iniciante, alias, achei esta iniciativa excelente, usar a opnião do usuario para melhorar o produto. isto devia ser adotado por outros projetos tambem.
ops… apos colocar os jars do spring no classpath, recebi uma stacktrace mais estranha ainda
18/10/2010 18:55:37 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: /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/…/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib
18/10/2010 18:55:39 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:agenda’ did not find a matching property.
18/10/2010 18:55:39 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:tarefas’ did not find a matching property.
18/10/2010 18:55:39 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:agenda2’ did not find a matching property.
18/10/2010 18:55:39 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:controle-produtos’ did not find a matching property.
18/10/2010 18:55:39 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:fj28’ did not find a matching property.
18/10/2010 18:55:42 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
18/10/2010 18:55:42 org.apache.coyote.ajp.AjpProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8009
18/10/2010 18:55:42 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 5712 ms
18/10/2010 18:55:42 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
18/10/2010 18:55:42 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.2
log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
log4j:WARN Please initialize the log4j system properly.
18/10/2010 18:55:50 org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter vraptor
java.lang.NoClassDefFoundError: com/google/common/collect/MapMaker
at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.<init>(VRaptorApplicationContext.java:69)
at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.<init>(SpringBasedContainer.java:42)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:79)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:269)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:250)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:368)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4193)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4801)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:771)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:988)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:275)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:427)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:649)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139)
at org.apache.catalina.startup.Catalina.start(Catalina.java:585)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.MapMaker
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1666)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1511)
… 29 more
18/10/2010 18:55:50 org.apache.catalina.core.StandardContext startInternal
SEVERE: Error filterStart
18/10/2010 18:55:50 org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/fj28] startup failed due to previous errors
18/10/2010 18:55:50 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/fj28] registered the JBDC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
é… mais uma mancada, mas agora eu ja arrumei, e tambem desisti por hoje, o eclipse helios nessa minha maravilha de 256mb de ram é uma beleza…, o tomcat demora quase 2 minutos pra subir, desse jeito ate o dalai lama perde a paciencia, talvez amanha eu continue a apostila…
Depende. Se a lib em questão é dependencia do EAR e filhos você deve deixar em EAR/lib. Caso o jar for dependência apenas do módulo web você coloca no WEB-INF/lib. Não se esqueça que se você usar uma lib em nível de EAR é necessário adiciona-la nos manifest dos projetos.
Depende. Se a lib em questão é dependencia do EAR e filhos você deve deixar em EAR/lib. Caso o jar for dependência apenas do módulo web você coloca no WEB-INF/lib. Não se esqueça que se você usar uma lib em nível de EAR é necessário adiciona-la nos manifest dos projetos.[/quote]
foi o que eu fiz. fazendo o deploy separadamente ele funciona, ao empacotar no ear que deu problema, agora ta dando isso
java.lang.NoClassDefFoundError: Could not initialize class br.com.caelum.vraptor.VRaptor
Alguma lib que deveria estar dentro do EAR está dentro do WEB-INF/lib. O SLF4J e todas as bridges dele devem estar no EAR e os demais projetos têm que ter essa entrada no MANIFEST.MF.