title: SEVERE: Parse error in application web.xml file
body: <p>I'm trying to deploy an application on tomcat 7.0.23 (the web app is all compiled and built), and I've been getting this error in catalina.out:</p>
  
  <pre><code>INFO: validateJarFile(/Library/Tomcat/webapps/app2/WEB-INF/lib/javaee-api-6.0.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
  Jan 5, 2012 10:28:41 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
  INFO: validateJarFile(/Library/Tomcat/webapps/app2/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
  Jan 5, 2012 10:28:41 PM org.apache.catalina.startup.ContextConfig parseWebXml
  SEVERE: Parse error in application web.xml file at jndi:/localhost/app2/WEB-INF/web.xml
  java.util.zip.ZipException: error in opening zip file
      at java.util.zip.ZipFile.open(Native Method)
      at java.util.zip.ZipFile.&lt;init&gt;(ZipFile.java:127)
      at java.util.jar.JarFile.&lt;init&gt;(JarFile.java:135)
      at java.util.jar.JarFile.&lt;init&gt;(JarFile.java:72)
      at sun.net.www.protocol.jar.URLJarFile.&lt;init&gt;(URLJarFile.java:72)
      at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
      at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
      at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
      at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132)
      at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:653)
      at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1315)
      at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1282)
      at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:283)
      at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1194)
      at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1090)
      at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:1003)
      at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
      at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
      at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
      at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
      at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
      at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
      at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
      at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1537)
      at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1742)
      at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1174)
      at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:828)
      at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:302)
      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:5148)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1247)
      at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:747)
      at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:222)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:187)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:298)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:680)
  Jan 5, 2012 10:28:41 PM org.apache.catalina.startup.ContextConfig configureStart
  SEVERE: Marking this application unavailable due to previous error(s)
  Jan 5, 2012 10:28:43 PM org.apache.catalina.core.StandardContext startInternal
  SEVERE: Error getConfigured
  Jan 5, 2012 10:28:43 PM org.apache.catalina.core.StandardContext startInternal
  SEVERE: Context [/app2] startup failed due to previous errors
  </code></pre>
  
  <p>I can't find anything on this error by googling, please help.</p>