[ http://issues.apache.org/jira/browse/GERONIMO-1378?page=comments#action_12360741 ]
anita kulshreshtha commented on GERONIMO-1378: ---------------------------------------------- I have not looked at TMB code recently, but the deployer reports to the console "The application was successfully deployed" and console shows the app running! The behavior in Jetty is different. It reports to the console "Could not load servlet class org....... " and the app is not deployed. You are correct that Jetty also show the stack trace. So we will not have a simple parse error message. But I think TMB should give DeploymentException just to be consistent. In Tomcat's case, next time the server is started, all these errors show up at startup time due to a badly deployed app. > Bad application web.xml makes digester go crazy > ----------------------------------------------- > > Key: GERONIMO-1378 > URL: http://issues.apache.org/jira/browse/GERONIMO-1378 > Project: Geronimo > Type: Bug > Components: Tomcat > Versions: 1.0-M5 > Environment: all > Reporter: anita kulshreshtha > Priority: Minor > > This trace is produced when the <servlet-class> element has a > non-existent class name: > 11:49:15,484 ERROR [ContextConfig] Parse error in application web.xml > java.lang.RuntimeException: org.apache.catalina.manager.JMXProxyServlet > at > org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2719) > at > org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2745) > at > org.apache.tomcat.util.digester.Digester.endElement(Digester.java:1060) > at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown > Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown > Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown > Source) > at > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown > Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) > at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) > at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) > at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561) > at > org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:339) > at > org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1031) > at > org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:255) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at > org.apache.catalina.core.StandardContext.start(StandardContext.java:4076) > at > org.apache.geronimo.tomcat.GeronimoStandardContext.access$101(GeronimoStandardContext.java:64) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:267) > at > org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(TransactionContextValve.java:53) > at > org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentContextValve.java:47) > at > org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceContextValve.java:60) > at > org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:187) > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759) > at > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739) > at > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524) > at > org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:287) > at > org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$$7af7fb0d.addContext(<generated>) > at > org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:407) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110) > at > org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537) > at > org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208) > at > org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315) > at > org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173) > at > org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142) > at > org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.kernel.config.ConfigurationManager$$EnhancerByCGLIB$$259d7f0a.start(<generated>) > at > org.apache.geronimo.console.configmanager.DeploymentPortlet.processAction(DeploymentPortlet.java:126) > at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229) > at > org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) > at > org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) > at > org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68) > at > org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164) > at > org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContainerWrapperImpl > .java:82) > at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227) > at org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:514) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:272) > at > org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:46) > at > org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContextValve.java:50) > at > org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(TransactionContextValve.java:53) > at > org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentContextValve.java:47) > at > org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceContextValve.java:60) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java > :663) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:534) > 11:49:15,484 ERROR [ContextConfig] Occurred at line 5 column 13 > 11:49:15,484 ERROR [ContextConfig] Marking this application unavailable due > to previous error(s) > 11:49:15,484 ERROR [StandardContext] Error getConfigured > 11:49:15,484 ERROR [StandardContext] Context [/hello] startup failed due to > previous errors > 12:00:26,734 INFO [StandardContext] Container > org.apache.catalina.core.ContainerBase.[/hello] has not been started > java.io.FileNotFoundException > at > org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:297) > at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:352) > at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:315) > at > org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:560) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:272) > at > org.apache.geronimo.tomcat.valve.TransactionContextValve.invoke(TransactionContextValve.java:53) > at > org.apache.geronimo.tomcat.valve.ComponentContextValve.invoke(ComponentContextValve.java:47) > at > org.apache.geronimo.tomcat.valve.InstanceContextValve.invoke(InstanceContextValve.java:60) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) > at > org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java > :663) > at > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > at > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:534) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
