title: Tomcat7 - org.apache.catalina.LifecycleException: Failed to start component
body: <p>This evening I pushed an update onto my Tomcat7 server and now it won't seem to start properly. Whenever I attempt to pull up the site in a web browser Chrome tells me that the link "appears to be broken". </p>
  
  <p>All I did before I this damage happened was that I updated some java code in my <code>webapps/ROOT/WEB-INF/classes</code> folder. All of the updated classes were a bunch of java classes and two servlets. </p>
  
  <p>At first I thought that I had the <code>web.xml</code> incorrect in my WEB-INF folder, but I checked that and it is correct (configured the same as on my test server on my desktop). </p>
  
  <p>Here is the stacktrace that I get from my <code>catalina.out</code>.</p>
  
  <p>Any help would be greatly appreciated. I can't seem to find anywhere that this particular error is located. </p>
  
  <pre><code>Jun 29, 2013 8:16:07 PM org.apache.coyote.AbstractProtocol init
  INFO: Initializing ProtocolHandler ["http-bio-8080"]
  Jun 29, 2013 8:16:07 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 595 ms
  Jun 29, 2013 8:16:07 PM org.apache.catalina.core.StandardService startInternal
  INFO: Starting service Catalina
  Jun 29, 2013 8:16:07 PM org.apache.catalina.core.StandardEngine startInternal
  INFO: Starting Servlet Engine: Apache Tomcat/7.0.30
  Jun 29, 2013 8:16:07 PM org.apache.catalina.startup.HostConfig deployDescriptor
  INFO: Deploying configuration descriptor /etc/tomcat7/Catalina/localhost/examples.xml
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core_rt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/permittedTaglibs is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://jakarta.apache.org/taglibs/standard/scriptfree is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql_rt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/sql is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/sql is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml_rt is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jstl/xml is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.TaglibUriRule body
  INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/xml is already defined
  Jun 29, 2013 8:16:08 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /var/lib/tomcat7/webapps/uploads
  Jun 29, 2013 8:16:09 PM org.apache.catalina.startup.HostConfig deployDirectory
  INFO: Deploying web application directory /var/lib/tomcat7/webapps/ROOT
  Jun 29, 2013 8:16:09 PM org.apache.catalina.core.ContainerBase addChildInternal
  SEVERE: ContainerBase.addChild: start:
  org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
          at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
          at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          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.NullPointerException
          at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2068)
          at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2069)
          at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1296)
          at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:878)
          at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:369)
          at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
          at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
          at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5173)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          ... 11 more
  
  Jun 29, 2013 8:16:09 PM org.apache.catalina.startup.HostConfig deployDirectory
  SEVERE: Error deploying web application directory /var/lib/tomcat7/webapps/ROOT
  java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
          at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100)
          at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618)
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          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)
  
  Jun 29, 2013 8:16:09 PM org.apache.coyote.AbstractProtocol start
  INFO: Starting ProtocolHandler ["http-bio-8080"]
  Jun 29, 2013 8:16:09 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 1517 ms
  </code></pre>