Erro ao iniciar o tomcat - GRAVE: A child container failed during start

Estou acompanhando a apostila da Caelum Java-Web-fj21 e chegeu na parte de Spring MVC e me deparei com o seguinte problema:

Meu tomcat estava funcionando perfeitamente em todos os exercícios, porém, após criar um novo projeto e adicionar os Jars que a apostila pedia, o Tomcat passou a não startar mais, em nenhum projeto mais ele funciona.

O que pedia a apostila:

  1. Vamos configurar o Spring MVC em um novo projeto.

a) Crie um novo projeto web: File -> New -> Project… -> Dynamic Web Project chamado
fj21-tarefas. Caso a versão do Dynamic web module esteja com 3.0 selecione 2.5.

e assim o fiz! configurei o xml de acordo com eles e dai por diante meu Tomcat não funcionou mais, também importei todos os Jars que eles pediam.

Erro:

abr 25, 2017 4:43:20 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:revisao-parcial’ did not find a matching property.
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server version: Apache Tomcat/7.0.75
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server built: Jan 18 2017 20:54:42 UTC
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Server number: 7.0.75.0
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Name: Windows 10
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: OS Version: 10.0
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Architecture: x86
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Java Home: C:\Program Files\Java\jre1.8.0_121
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Version: 1.8.0_121-b13
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: JVM Vendor: Oracle Corporation
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_BASE: C:\TOMCAT\apache-tomcat-7.0.75
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: CATALINA_HOME: C:\TOMCAT\apache-tomcat-7.0.75
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.base=C:\TOMCAT\apache-tomcat-7.0.75
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dcatalina.home=C:\TOMCAT\apache-tomcat-7.0.75
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dwtp.deploy=C:\TOMCAT\apache-tomcat-7.0.75\wtpwebapps
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Djava.endorsed.dirs=C:\TOMCAT\apache-tomcat-7.0.75\endorsed
abr 25, 2017 4:43:20 PM org.apache.catalina.startup.VersionLoggerListener log
INFORMAÇÕES: Command line argument: -Dfile.encoding=Cp1252
abr 25, 2017 4:43:20 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre1.8.0_121\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Program Files/Java/jre1.8.0_121/bin/client;C:/Program Files/Java/jre1.8.0_121/bin;C:/Program Files/Java/jre1.8.0_121/lib/i386;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files\MySQL\MySQL Utilities 1.6;C:\Program Files\Java\jdk1.8.0_121\bin;C:\Users\Computador\AppData\Local\Microsoft\WindowsApps;;C:\Users\Computador\eclipse;;.
abr 25, 2017 4:43:21 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“http-bio-8080”]
abr 25, 2017 4:43:21 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler [“ajp-bio-8009”]
abr 25, 2017 4:43:21 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 4424 ms
abr 25, 2017 4:43:21 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
abr 25, 2017 4:43:21 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/7.0.75
abr 25, 2017 4:43:24 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/revisao-parcial]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1119)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/revisao-parcial]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
… 6 more
Caused by: java.lang.NoClassDefFoundError: org/springframework/beans/BeansException
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Unknown Source)
at java.lang.Class.getDeclaredFields(Unknown Source)
at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5522)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
… 6 more
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.BeansException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
… 20 more

abr 25, 2017 4:43:24 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1119)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.startup.Catalina.start(Catalina.java:693)
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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1127)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:819)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
… 6 more

abr 25, 2017 4:43:24 PM org.apache.catalina.startup.Catalina start
GRAVE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.startup.Catalina.start(Catalina.java:693)
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.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:428)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:758)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
… 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:444)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
… 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1127)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
… 11 more

abr 25, 2017 4:43:24 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler [“http-bio-8080”]
abr 25, 2017 4:43:24 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler [“ajp-bio-8009”]
abr 25, 2017 4:43:24 PM org.apache.catalina.core.StandardService stopInternal
INFORMAÇÕES: Stopping service Catalina
abr 25, 2017 4:43:24 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler [“http-bio-8080”]
abr 25, 2017 4:43:24 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler [“ajp-bio-8009”]

Alguém já teve o mesmo problema? Será que alguém poderia me dar uma dica do que pode ter acontecido?

Importante acompanhar todo o log, seu problema está bem no começo do trace que você postou:

ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property ‘source’ to ‘org.eclipse.jst.jee.server:revisao-parcial’ did not find a matching property.

Olá BlackDog,

Obrigado por me responder. Analisei com mais calma a sua informação e realmente você tinha razão, o erro era esse mesmo! Porém, ao resolver essa questão, me deparei com mais outro erro, será que pode ser de mesma natureza do anterior?

Segue o erro…

HTTP Status 500 - Servlet.init() for servlet springmvc threw exception

type Exception report

message Servlet.init() for servlet springmvc threw exception

description The server encountered an internal error that prevented it from fulfilling this request.
exception

javax.servlet.ServletException: Servlet.init() for servlet springmvc threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

root cause

java.lang.NoSuchMethodError: org.springframework.util.ReflectionUtils.isObjectMethod(Ljava/lang/reflect/Method;)Z
org.springframework.beans.ExtendedBeanInfo.(ExtendedBeanInfo.java:84)
org.springframework.beans.CachedIntrospectionResults.(CachedIntrospectionResults.java:224)
org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:149)
org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:324)
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1055)
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:924)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:62)
org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:119)
javax.servlet.GenericServlet.init(GenericServlet.java:158)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.75 logs.

Ele não está conseguindo encontra o método do spring java.lang.NoSuchMethodError, o que pode está acontecendo é um erro de class loader, quando as versões não são compatíveis. Quando fiz o mesmo projeto também tive o mesmo problema, no caso é bom evitar o uso de XML e utilizar properties, a partir do spring recomendo iniciar outros projetos mais diretos, pois a apostila dá Caelum devasa nesta parte, tive intensa dificuldade em conseguir prosseguir desta parte que até desisti. Vendo o mesmo erro hoje, acredito que tenha haver com incompatibilidade de versões, em vista que alguns métodos podem está utilizando versões atuais do spring e trabalhando com versões antigas causam do Servlet, vice e versa, observando que você está trabalhando com Tomcat 7, assim como. As dependências que você quer pegar pelo XML não estarem mais disponíveis e que também pode gerar esse mesmo erro de não encontrar o método.e que salve engano é o um dos motivos em não utilizar mais XML. Caso consiga resolver , manda aí. Tks

Na verdade ele não está encontrado esse cara aqui org.springframework.util.ReflectionUtils.isObjectMethod(Ljava/lang/reflect/Method;)

Com certeza é incompatiblidade de versões dos metodos do Spring. Dá uma geral nas versões que você está usando e a versão que é demonstrada nas apostilas da Caelum.

Abs !

Valew jonathan.sky, BlackDog

Vou dar uma geral aqui no projeto e qualquer coisa posto aqui novamente.

Valew galera pelas dicas!
Era justamente a incompatibilidade das versões, baixei o projeto original da Caelum "fj21-tarefas"
e peguei todos os Jars certinhos e rodou!

Quem estiver com o mesmo problema e quiser baixar o projeto, segue o link abaixo:

http://www.mediafire.com/?cdn8mx3aldi54y3 ou

Muito obrigado a todos pelas dicas. Valeu

1 curtida

Quando estiver mais maduro, recomendo que veja sobre JVM e classeloader, por exemplo, neste caso ele não deu um erro direito, avisando que havia erro de dependência, somente que não encontrava o método. existem casos comuns em que o simplesmes fato de ter duas versões de jar embutidas ocasionarem erros e você nem ao menos saber o porquê. Se possível, recomendo o livro de arquitetura dá casa do código.

1 curtida

jonathan.sky,

Muito obrigado pela dica, vou dar uma lida sim nesse livro. valew!