web.xml的内容: <?xml version="1.0" encoding="ISO-8859-1"?> <!-- edited with XML Spy v3.0 (http://www.xmlspy.com) by Che Ming (PCSoft) --> <!-- This is the web-app configurations that allow Cocoon to work under Apache Tomcat. Please, follow the installation section of the documentation for more information about installing Cocoon on Tomcat --> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd"> <web-app> <servlet> <servlet-name>org.apache.cocoon.Cocoon</servlet-name> <servlet-class>org.apache.cocoon.Cocoon</servlet-class> <init-param> <param-name>properties</param-name> <param-value>WEB-INF/cocoon.properties</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>org.apache.cocoon.Cocoon</servlet-name> <url-pattern>*.xml</url-pattern> </servlet-mapping> </web-app>
我靠,原来是 cocoon.jar的classpath没有设!设好后可以解析xml文件!但有新问题出现:Publishing Engine could not be initialized. java.lang.RuntimeException: Error creating org.apache.cocoon.parser.XercesParser: make sure the needed classes can be found in the classpath (org/apache/xerces/framework/XMLParser) at org.apache.cocoon.framework.Manager.create(Manager.java:122) at org.apache.cocoon.Engine.<init>(Engine.java:147) at org.apache.cocoon.Engine.getInstance(Engine.java:232) at org.apache.cocoon.Cocoon.init(Cocoon.java:157) at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317) at org.apache.tomcat.core.Handler.init(Handler.java:215) at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296) at org.apache.tomcat.core.Handler.service(Handler.java:254) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484)
A context in Tomcat describes to Tomcat how and when to load a particular servlet and Cocoon is one such servlet. First we need to make sure that Tomcat knows how to load the Cocoon .jar files. To begin with, you must copy any .jar files from $COCOON_HOME/lib to $TOMCAT_HOME/lib that are necessary for Cocoon to run (see top of page). In addition, you must copy $COCOON_HOME/bin/cocoon.jar to $TOMCAT_HOME/lib. In recent versions of Tomcat under Unix and Windows, Tomcat will automatically detect any .jar files in the $TOMCAT_HOME/lib directory. But with Tomcat 3.1 under Windows only, you must explicitly add the new .jar files in the appropriate place in the file $TOMCAT_ROOT/bin/tomcat.bat.
"In recent versions of Tomcat under Unix and Windows, Tomcat will automatically detect any .jar files in the $TOMCAT_HOME/lib directory"问题就出在这句话上,可tomcat根本没有自动加载*.jar. 现在我把jar都手动的加到classpath上,问题已经基本解决了,现在是:Publishing Engine could not be initialized. java.lang.RuntimeException: Exception when creating " org.apache.cocoon.processor.xsp.XSPProcessor" : java.lang.NoSuchMethodError: See http://xml.apache.org/cocoon/faqs.html#faq-normalize at org.apache.cocoon.framework.Manager.create(Manager.java:124) at org.apache.cocoon.framework.Router.init(Router.java:80) at org.apache.cocoon.framework.Manager.create(Manager.java:109) at org.apache.cocoon.Engine.<init>(Engine.java:179) at org.apache.cocoon.Engine.getInstance(Engine.java:232) at org.apache.cocoon.Cocoon.init(Cocoon.java:157) at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317) at org.apache.tomcat.core.Handler.init(Handler.java:215) at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296) at org.apache.tomcat.core.Handler.service(Handler.java:254) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484)现在在看看http://xml.apache.org/cocoon/faqs.html#faq-normalize我估计就没有什么问题了,谢谢skyyoung(路人甲)的热心帮助!
看到这句没有。 But with Tomcat 3.1 under Windows only, you must explicitly add the new .jar files in the appropriate place in the file $TOMCAT_ROOT/bin/tomcat.bat.
急呀急!cocoon这么好的东西大家一起试一试呀。问题画面提示:Publishing Engine could not be initialized. java.lang.RuntimeException: Exception when creating " org.apache.cocoon.processor.xsp.XSPProcessor" : java.lang.NoSuchMethodError: See http://xml.apache.org/cocoon/faqs.html#faq-normalize at org.apache.cocoon.framework.Manager.create(Manager.java:124) at org.apache.cocoon.framework.Router.init(Router.java:80) at org.apache.cocoon.framework.Manager.create(Manager.java:109) at org.apache.cocoon.Engine.<init>(Engine.java:179) at org.apache.cocoon.Engine.getInstance(Engine.java:232) at org.apache.cocoon.Cocoon.init(Cocoon.java:157) at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317) at org.apache.tomcat.core.Handler.init(Handler.java:215) at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296) at org.apache.tomcat.core.Handler.service(Handler.java:254) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743) at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210) at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416) at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498) at java.lang.Thread.run(Thread.java:484)
cocoon.preproties和web.xml均放在web-inf目录,concoon的context也已设置,所有的jar文件都copy到tomcat的lib目录,classpath中也没有放置其他的xml解析器。
web.xml的内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XML Spy v3.0 (http://www.xmlspy.com) by Che Ming (PCSoft) -->
<!--
This is the web-app configurations that allow Cocoon to work under
Apache Tomcat. Please, follow the installation section of the
documentation for more information about installing Cocoon on Tomcat
-->
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
<web-app>
<servlet>
<servlet-name>org.apache.cocoon.Cocoon</servlet-name>
<servlet-class>org.apache.cocoon.Cocoon</servlet-class>
<init-param>
<param-name>properties</param-name>
<param-value>WEB-INF/cocoon.properties</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>org.apache.cocoon.Cocoon</servlet-name>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
</web-app>
java.lang.RuntimeException: Error creating org.apache.cocoon.parser.XercesParser: make sure the needed classes can be found in the classpath (org/apache/xerces/framework/XMLParser)
at org.apache.cocoon.framework.Manager.create(Manager.java:122)
at org.apache.cocoon.Engine.<init>(Engine.java:147)
at org.apache.cocoon.Engine.getInstance(Engine.java:232)
at org.apache.cocoon.Cocoon.init(Cocoon.java:157)
at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317)
at org.apache.tomcat.core.Handler.init(Handler.java:215)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
现在我把jar都手动的加到classpath上,问题已经基本解决了,现在是:Publishing Engine could not be initialized.
java.lang.RuntimeException: Exception when creating " org.apache.cocoon.processor.xsp.XSPProcessor" :
java.lang.NoSuchMethodError: See http://xml.apache.org/cocoon/faqs.html#faq-normalize
at org.apache.cocoon.framework.Manager.create(Manager.java:124)
at org.apache.cocoon.framework.Router.init(Router.java:80)
at org.apache.cocoon.framework.Manager.create(Manager.java:109)
at org.apache.cocoon.Engine.<init>(Engine.java:179)
at org.apache.cocoon.Engine.getInstance(Engine.java:232)
at org.apache.cocoon.Cocoon.init(Cocoon.java:157)
at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317)
at org.apache.tomcat.core.Handler.init(Handler.java:215)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)现在在看看http://xml.apache.org/cocoon/faqs.html#faq-normalize我估计就没有什么问题了,谢谢skyyoung(路人甲)的热心帮助!
But with Tomcat 3.1 under Windows only, you must explicitly add the new .jar files in the appropriate place in the file $TOMCAT_ROOT/bin/tomcat.bat.
不知什么问题,faq也没说清楚
java.lang.RuntimeException: Exception when creating " org.apache.cocoon.processor.xsp.XSPProcessor" :
java.lang.NoSuchMethodError: See http://xml.apache.org/cocoon/faqs.html#faq-normalize
at org.apache.cocoon.framework.Manager.create(Manager.java:124)
at org.apache.cocoon.framework.Router.init(Router.java:80)
at org.apache.cocoon.framework.Manager.create(Manager.java:109)
at org.apache.cocoon.Engine.<init>(Engine.java:179)
at org.apache.cocoon.Engine.getInstance(Engine.java:232)
at org.apache.cocoon.Cocoon.init(Cocoon.java:157)
at org.apache.tomcat.core.ServletWrapper.doInit(ServletWrapper.java:317)
at org.apache.tomcat.core.Handler.init(Handler.java:215)
at org.apache.tomcat.core.ServletWrapper.init(ServletWrapper.java:296)
at org.apache.tomcat.core.Handler.service(Handler.java:254)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)