You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by JS <sm...@dcs.kcl.ac.uk> on 2003/04/08 20:21:22 UTC

Dodgy web.xml and error in catalina.out

Hi there,
This email kinda follows on from my one about the 503 servlet invoker erro

Basically, Im trying to run a basic ConnectionPool servlet. It works when
I access the servlet directly using
http://localhost:8080/mydcs/servlet/coreservlets.ConnectionPool
Problem is, when I try and access it through a html page, I get the 404
error in one frame and the 503 in another frame. Both the frames in the
html document are accessing the same servlet.
Whats interesting is that when I look at catalina.out, and the Java Web
Services Developeer Pack Log, things are not going according to plan.
Whats more interesting is that in jwsdp_log.txt, there are some more
complaints about my web.xml file. See below. Web.xml seems to be in order.
Unless I'm missing something.
Ive included web.xml, catalina.out and jwsdp_log.txt below.


I'd appreciate it if someone shed some light on whats going on here.
Many thanks, much appreciated.

JS

----------------------------
Here;s TOMCAT_HOME\webapps\mydcs\WEB-INF\web.xml
---------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
	<display-name>XML Web Service for DCS</display-name>

	<servlet>
	   <servlet-name>LoginServlet</servlet-name>
	   <servlet-class>LoginServlet</servlet-class>
	   <load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
	    <servlet-name>coreservlets.ConnectionPoolServlet</servlet-name>
	    <servlet-class>coreservlets.ConnectionPoolServlet</servlet-class>
	    <load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
	    <servlet-name>LoginServletNoPool</servlet-name>
	    <servlet-class>LoginServletNoPool</servlet-class>
	    <load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
	    <servlet-name>JDOMServlet</servlet-name>
	    <servlet-class>JDOMServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>JDOMServlet</servlet-name>
		<url-pattern>/servlet</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>coreservlets.ConnectionPoolServlet</servlet-name>
		<url-pattern>/servlet</url-pattern>
	</servlet-mapping>
</web-app>


---------------------------
Here's catalina.out;
---------------------------

Starting service Java Web Services Developer Pack
Java Web Services Developer Pack/1.0_01-fcs
org.xml.sax.SAXParseException: Document root element "web-app", must match
DOCTYPE root "null".	at
	org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:232)	at
	org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:173)	at
	org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:362)	at
	org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:296)	at
	org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(XMLDTDValidator.java:2546)	at
	org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:2850)	at
	org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:792)	at
	org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:752)	at
	org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(XMLDocumentScannerImpl.java:927)	at
	org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1519)	at
	org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333)	at
	org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:529)	at
	org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:585)	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
	at
	org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1148)	at org.apache.commons.digester.Digester.parse(Digester.java:1284)
	at
	org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:282)	at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:639)
	at
	org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)	at
	org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3445)
	at
	org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)
	at
	org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:257)	at org.apache.catalina.core.StandardHost.install(StandardHost.java:773)
	at
	org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:569)	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:411)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:882)
	at
	org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:368)	at
	org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1198)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:739)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1190)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
	at org.apache.catalina.core.StandardService.start(StandardService.java:499)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:2187)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:504)
	at org.apache.catalina.startup.Catalina.execute(Catalina.java:399)
	at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
	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:324)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
	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:324)
	at com.sun.launcher.Launcher.main(Launcher.java:208)
[ERROR] Digester - -Parse Error at line 1 column 10: Document root element
"web-app", must match DOCTYPE root "null". <org.xml.sax.SAXParseException:
Document root element "web-app", must match DOCTYPE root "null".>org.xml.sax.SAXParseException: Document is invalid: no grammar found.

-------------------------------
Here's jwsdp_log.txt;
-------------------------------
2003-04-08 18:53:22 ConnectionPool.ConnectionPoolServlet: init
2003-04-08 18:53:22 StandardWrapper[/djs:invoker]: Loading container
servlet invoker2003-04-08 18:53:22 invoker: init
2003-04-08 18:53:22 jsp: init
***************************************************
Here is the dodgy line!!!, everything else seems to load up fine.
As a result of this, my classes are not found
***************************************************
2003-04-08 18:53:22 Exception initializing TldLocationsCache: XML parsing
error on file /WEB-INF/web.xml: (line 1, col 10): Document root element
"web-app", must match DOCTYPE root "null".2003-04-08 18:53:22 HostConfig[localhost]: Deploying web application
directory mydcs2003-04-08 18:53:22 StandardHost[localhost]: Installing web application at
context path /mydcs from URL file:C:\WINDOWS\jwsdp-1_0_01\webapps\mydcs2003-04-08 18:53:22 WebappLoader[/mydcs]: Deploying class repositories to
work directory C:\WINDOWS\jwsdp-1_0_01\work\Standard
Engine\localhost\mydcs2003-04-08 18:53:22 WebappLoader[/mydcs]: Deploy class files
/WEB-INF/classes to C:\WINDOWS\jwsdp-1_0_01\webapps\mydcs\WEB-INF\classes2003-04-08 18:53:23 StandardManager[/mydcs]: Seeding random number
generator class java.security.SecureRandom2003-04-08 18:53:23 StandardManager[/mydcs]: Seeding of random number
generator has been completed2003-04-08 18:53:23 LoginServletNoPool: init
2003-04-08 18:53:23 coreservlets.ConnectionPoolServlet: init
2003-04-08 18:53:26 StandardWrapper[/mydcs:default]: Loading container
servlet default2003-04-08 18:53:26 default: init
2003-04-08 18:53:26 LoginServlet: init
2003-04-08 18:53:26 StandardWrapper[/mydcs:invoker]: Loading container
servlet invoker2003-04-08 18:53:26 invoker: init
2003-04-08 18:53:26 jsp: init
2003-04-08 18:53:28 StandardWrapper
***************************************************
This is why my classes are not being found, the invoker is doing something
to it, presumably because web.xml isnt in order??***************************************************[:org.apache.catalina.INVOKER.coreservlets.ConnectionPoolServlet]:
Marking servlet
org.apache.catalina.INVOKER.coreservlets.ConnectionPoolServlet as
unavailable2003-04-08 18:53:28
StandardWrapperValve[org.apache.catalina.INVOKER.coreservlets.ConnectionPoolServlet]:
Allocate exception for servlet
org.apache.catalina.INVOKER.coreservlets.ConnectionPoolServletjavax.servlet.ServletException: Wrapper cannot find servlet class
coreservlets.ConnectionPoolServlet or a class it depends on	at
	org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:874)	at
	org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:656)	at
	org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)	at
	org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)	at
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)	at
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)	at
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)	at java.lang.Thread.run(Thread.java:536)
----- Root Cause -----
java.lang.ClassNotFoundException: coreservlets.ConnectionPoolServlet
	at
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1406)	at
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1252)	at
	org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:868)	at
	org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:656)	at
	org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)	at
	org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at
	org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
	org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
	at
	org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)	at
	org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)	at
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)	at
	org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)	at
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)	at java.lang.Thread.run(Thread.java:536)

Thanks again!
JS



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org