Tomcat startup (web.xml) issue
Solution 1
Change the initial line "<web-app" to the following
<web-app xmlns="http://java.sun.com/xml/ns/javaee">
Throughout the entire file, remove any of those "javaee:" prefixes.
I had the same problem, I think we both copied the web.xml file from the same source. I can't remember what the source was and it worked for me until now, I don't know what changed.
Solution 2
As everyone mentioned its a problem with web.xml the web.xml do gets updated, when you are updating the "User Library" in Eclipse IDE, i.e. after downloading respective library jar it updates the web.xml by default.
Immediately you need to restore your web.xml else you would get this error.
Solution 3
This is your problem:
SEVERE: Parse error in application web.xml file at jndi:/localhost/aramark-optima/WEB-INF/web.xml
This isn't a valid JNDI lookup. Where is this spelled out?
Evan Klein
Updated on July 09, 2022Comments
-
Evan Klein almost 2 years
I'm using Tomcat 6 with eclipse web tools to publish an application. When I deploy the j2ee application I'm getting this error via tomcat logs:
Feb 18, 2010 9:50:33 PM 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: C:\Program Files\Java\jdk1.6.0_17\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;c:\Program Files\Microsoft SQL Server\90\Tools\binn\;Pñ Feb 18, 2010 9:50:33 PM org.apache.coyote.http11.Http11Protocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Feb 18, 2010 9:50:33 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 443 ms Feb 18, 2010 9:50:33 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Feb 18, 2010 9:50:33 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.24 Feb 18, 2010 9:50:33 PM org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor aramark-optima.xml Feb 18, 2010 9:50:33 PM org.apache.tomcat.util.digester.Digester endElement SEVERE: End event threw exception java.lang.IllegalArgumentException: Can't convert argument: null at org.apache.tomcat.util.IntrospectionUtils.convert(IntrospectionUtils.java:1005) at org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:523) 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(AbstractSAXParser.java:601) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930) 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:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) 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:107) 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:1642) at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1072) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4377) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 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:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Feb 18, 2010 9:50:33 PM org.apache.catalina.startup.ContextConfig applicationWebConfig SEVERE: Parse error in application web.xml file at jndi:/localhost/aramark-optima/WEB-INF/web.xml java.lang.IllegalArgumentException: Can't convert argument: null 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(AbstractSAXParser.java:601) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1774) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2930) 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:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807) 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:107) 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:1642) at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:365) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1072) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4377) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:722) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:593) 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:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.IllegalArgumentException: Can't convert argument: null at org.apache.tomcat.util.IntrospectionUtils.convert(IntrospectionUtils.java:1005) at org.apache.tomcat.util.digester.CallMethodRule.end(CallMethodRule.java:523) at org.apache.tomcat.util.digester.Rule.end(Rule.java:229) at org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1138) ... 38 more Feb 18, 2010 9:50:33 PM org.apache.catalina.startup.ContextConfig applicationWebConfig SEVERE: Occurred at line 8 column 19 Feb 18, 2010 9:50:33 PM org.apache.catalina.startup.ContextConfig start SEVERE: Marking this application unavailable due to previous error(s) log4j:WARN No appenders could be found for logger (org.objectweb.jotm). log4j:WARN Please initialize the log4j system properly. Feb 18, 2010 9:50:34 PM org.apache.catalina.core.StandardContext start SEVERE: Error getConfigured Feb 18, 2010 9:50:34 PM org.apache.catalina.core.StandardContext start SEVERE: Context [/aramark-optima] startup failed due to previous errors Feb 18, 2010 9:50:34 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [JotmBatch] but has failed to stop it. This is very likely to create a memory leak. Feb 18, 2010 9:50:34 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE: A web application appears to have started a thread named [JotmClock] but has failed to stop it. This is very likely to create a memory leak.
This leads me to the web.xml file - which apparently is having issues being parsed. However, when examining the web.xml I don't see anything wrong.
Here is the web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <javaee:display-name>BlazeDS</javaee:display-name> <javaee:description>BlazeDS Application</javaee:description> <context-param> <javaee:param-name>f2as.library.file</javaee:param-name> <javaee:param-value>/WEB-INF/f2as/user_classes/dto_formulas_complib.swc</javaee:param-value> </context-param> <context-param> <javaee:param-name>f2as.library.root</javaee:param-name> <javaee:param-value>com.theriabook.controls.superGridClasses.FormulaBase</javaee:param-value> </context-param> <context-param> <javaee:param-name>mxmlc.configuration.file</javaee:param-name> <javaee:param-value>/WEB-INF/f2as/mxmlc-flex-config.xml</javaee:param-value> </context-param> <context-param> <javaee:param-name>f2as.configuration.file</javaee:param-name> <javaee:param-value>/WEB-INF/f2as/flex-config.xml</javaee:param-value> </context-param> <context-param> <javaee:param-name>f2as.class.path</javaee:param-name> <javaee:param-value>/WEB-INF/f2as/jars</javaee:param-value> </context-param> <context-param> <javaee:param-name>flex.class.path</javaee:param-name> <javaee:param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</javaee:param-value> </context-param> <listener> <javaee:listener-class>flex.messaging.HttpFlexSession</javaee:listener-class> </listener> <servlet> <javaee:display-name>MessageBrokerServlet</javaee:display-name> <servlet-name>MessageBrokerServlet</servlet-name> <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> <init-param> <javaee:param-name>services.configuration.file</javaee:param-name> <javaee:param-value>/WEB-INF/flex/services-config.xml</javaee:param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PdfStreamServlet</servlet-name> <servlet-class>com.farata.pdf.StreamPdf</servlet-class> </servlet> <servlet> <servlet-name>PageReqServlet</servlet-name> <servlet-class>com.farata.pdf.PageRequesterServlet</servlet-class> </servlet> <servlet> <javaee:display-name>fileupload</javaee:display-name> <servlet-name>fileupload</servlet-name> <servlet-class>com.aramark.upload.FileUploadServlet</servlet-class> </servlet> <servlet> <javaee:display-name>filedownload</javaee:display-name> <servlet-name>filedownload</servlet-name> <servlet-class>com.aramark.upload.FileDownloadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>PdfStreamServlet</servlet-name> <url-pattern>*.ppdf</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PageReqServlet</servlet-name> <url-pattern>*.print</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>MessageBrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>fileupload</servlet-name> <url-pattern>/fileupload/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>filedownload</servlet-name> <url-pattern>/download/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>demo3.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <filter> <filter-name>clearbi-compiler-invocation-interceptor</filter-name> <filter-class>com.cti.compiler.env.web.CompilerInvocationInterceptor</filter-class> </filter> <filter-mapping> <filter-name>clearbi-compiler-invocation-interceptor</filter-name> <servlet-name>MessageBrokerServlet</servlet-name> </filter-mapping> <mime-mapping> <extension>air</extension> <mime-type>application/vnd.adobe.air-application-installer-package+zip</mime-type> </mime-mapping> <servlet> <servlet-name>CrystalReportViewerServlet</servlet-name> <servlet-class>com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CrystalReportViewerServlet</servlet-name> <url-pattern>/CrystalReportViewerHandler</url-pattern> </servlet-mapping> <context-param> <javaee:param-name>crystal_image_uri</javaee:param-name> <javaee:param-value>/crystalreportviewers</javaee:param-value> </context-param> <context-param> <javaee:param-name>crystal_image_use_relative</javaee:param-name> <javaee:param-value>webapp</javaee:param-value> </context-param> </web-app>
-
hugri over 13 yearsI think these (the javaee: prefixes) were set by Eclipse
-
Bill Mote almost 13 yearsI had j2ee but removing that in all places in the web.xml fixed my problem too +1
-
tusar almost 12 yearsThanks ! your solution saved me today !
-
Ademir Mazer Jr - Nuno almost 12 yearsItś 2AM after 3 days and finally this fix my problem ... thanks a lot