This is only the effect of a previous error.
Cocoon has the following web.xml configuration:
<load-on-startup>1</load-on-startup>
This means that Tomcat will load Cocoon at Tomcat start (as opposed to first
access of CocoonServlet).
If CocoonServlet throws an exception during init, Tomcat will consider the
servlet as uninitialized and will try to re-init on first access.
Ie one "half-init + break" + another "half-init + break", which gives you
troubles with anything loaded statically in the JVM during the part of the
init that actually works (eg configuring the Cron block and Quartz
scheduler).
You should search for the previous error in the Tomcat and/or Cocoon logs
and try to get help on the Cocoon user's list (don't focus on the
"cannot create a quartz scheduler", during testing it might also be
easier to set load-on-startup=0 in Cocoon's web.xml).
You can use Tomcat's Manager application [1] to check the init-status
and if Tomcat considers the servlet to be loaded.
1. Remove tomcat/common/lib/xerces.jar file.
2. Copy following libraries from the cocoon/lib/core directory to the tomcat/common/lib directory:
* xalan-XXX.jar
* xercesImpl-XXX.jar
* xml-apis.jar
3. Copy cocoon/lib/optional/batik-all-XXX.jar to the tomcat/common/lib directory.
4. Edit extra-classpath parameter in the cocoon/src/webapp/WEB-INF/web.xml file: