title: Tomcat startup issue(web.xml)
body: <p>I'm trying to run a spring mvc basic app with tomcat and getting http 404 error. I get the below start up error. This was working before and i have no clue what went wrong with we.xml</p>
  
  <pre><code>May 21, 2013 6:09:37 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
  WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property       'source' to 'org.eclipse.jst.jee.server:testspring' did not find a matching property.
  May 21, 2013 6:09:37 PM org.apache.coyote.http11.Http11Protocol init
  INFO: Initializing Coyote HTTP/1.1 on http-8080
  May 21, 2013 6:09:37 PM org.apache.catalina.startup.Catalina load
  INFO: Initialization processed in 471 ms
  May 21, 2013 6:09:37 PM org.apache.catalina.core.StandardService start
  INFO: Starting service Catalina
  May 21, 2013 6:09:37 PM org.apache.catalina.core.StandardEngine start
  INFO: Starting Servlet Engine: Apache Tomcat/6.0.33
  May 21, 2013 6:09:37 PM org.apache.tomcat.util.digester.Digester endElement
  SEVERE: End event threw exception
  java.lang.reflect.InvocationTargetException
  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.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:959)
  at org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:789)
  at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)
  at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1138)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
  at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
  at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)
  at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1076)
  at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
  at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
  at org.apache.catalina.core.StandardContext.start(StandardContext.java:4612)
  at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
  at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
  at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
  at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
  at org.apache.catalina.core.StandardService.start(StandardService.java:525)
  at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
  at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
  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:289)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
  Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown   servlet name frontcontrol
  at  org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2739)
  at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2719)
  ... 37 more
  May 21, 2013 6:09:37 PM org.apache.catalina.startup.ContextConfig applicationWebConfig
  SEVERE: Parse error in application web.xml file at jndi:/localhost/testspring/WEB-   INF/web.xml
  java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name   frontcontrol
  at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)
  at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)
  at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1141)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
  at  com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
  at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
  at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)
  at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365)
  at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1076)
  at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
  at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
  at org.apache.catalina.core.StandardContext.start(StandardContext.java:4612)
  at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
  at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
  at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
  at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
  at org.apache.catalina.core.StandardService.start(StandardService.java:525)
  at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
  at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
  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:289)
  at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
  Caused by: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown  servlet name frontcontrol
  at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2739)
  at org.apache.catalina.core.StandardContext.addServletMapping(StandardContext.java:2719)
  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.tomcat.util.IntrospectionUtils.callMethodN(IntrospectionUtils.java:959)
  at org.apache.catalina.startup.CallMethodMultiRule.end(WebRuleSet.java:789)
  at org.apache.tomcat.util.digester.Rule.end(Rule.java:229)
  at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1138)
  ... 29 more
  May 21, 2013 6:09:37 PM org.apache.catalina.startup.ContextConfig applicationWebConfig
  SEVERE: Occurred at line 20 column 21
  May 21, 2013 6:09:37 PM org.apache.catalina.startup.ContextConfig start
  SEVERE: Marking this application unavailable due to previous error(s)
  May 21, 2013 6:09:38 PM org.apache.catalina.core.StandardContext start
  SEVERE: Error getConfigured
  May 21, 2013 6:09:38 PM org.apache.catalina.core.StandardContext start
  SEVERE: Context [/testspring] startup failed due to previous errors
  May 21, 2013 6:09:38 PM org.apache.coyote.http11.Http11Protocol start
  INFO: Starting Coyote HTTP/1.1 on http-8080
  May 21, 2013 6:09:38 PM org.apache.jk.common.ChannelSocket init
  INFO: JK: ajp13 listening on /0.0.0.0:8009
  May 21, 2013 6:09:38 PM org.apache.jk.server.JkMain start
  INFO: Jk running ID=0 time=0/26  config=null
  May 21, 2013 6:09:38 PM org.apache.catalina.startup.Catalina start
  INFO: Server startup in 309 ms
  </code></pre>
  
  <p>I don't see anything wrong with my web.xml. Can someone help me to sort this out?</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt;
  &lt;display-name&gt;testspring&lt;/display-name&gt;
  &lt;welcome-file-list&gt;
  &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
  &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
  &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
  &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
  &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
  &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
  &lt;/welcome-file-list&gt;
  &lt;servlet&gt;
  &lt;servlet-name&gt;spring&lt;/servlet-name&gt;
  &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;
  &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
  &lt;servlet-name&gt;frontcontrol&lt;/servlet-name&gt;
  &lt;url-pattern&gt;/&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  &lt;/web-app&gt;
  </code></pre>