Hi Erwin, Christian Schmitt told you where to place the class files. Maybe you will laugh, but it is neccessary to compile your classes externally. Cocoon doesn't do it for you. When you read about cocoon someone (like me for the first time) could assume that cocoon could be able to do the compilation...
Best regards - Volker - -----Original Message----- From: Erwin [mailto:[EMAIL PROTECTED]] Sent: Donnerstag, 28. Marz 2002 13:35 To: Cocoon Users mailing list Subject: Error when deploying own generator Hi, I have a program that dynamically generates XML content and to integrate it with Cocoon 2 I have tried to write my own generator. But every time I try to test it, I get a java.lang.NoClassDefFoundError: org/apache/cocoon/generation/AbstractGenerator I guess it has something to do with an incorrect classpath, but I have tried a lot and haven't been able to solve it. ---o--- My setup: DEC Alpha Personal Workstation 500a Redhat Linux 7.1 Jakarta Tomcat 3.2.3 Cocoon 2.0.1 Compaq JDK for Alpha, version 1.3.1-1 Output of java -version java version "1.3.1" Java(TM) 2 Runtime Environment, Standard Edition Classic VM (build 1.3.1-1, native threads, jit) ---o--- I made following changes to the root sitemap to test my generator: In <map:generators> added: <map:generator name="rmigen" src="rmitest.Client"/> In a <map:pipeline> element added: <map:match pattern="rmitest"> <map:generate type="rmigen"/> <map:serialize type="xml"/> </map:match> Then I stopped Tomcat (and thus Cocoon), removed the Cocoon-directory in the tomcat work directory, adjusted the classpath so the class rmitest.Client would be found and then restarted Tomcat. ---o--- I then tried to access http://localhost:8080/cocoon/rmitest but that resulted in a 'fatal error'. Looking in sitemap.log I found the following: ERROR (2002-03-27) 23:21.40:190 [sitemap] (/cocoon/) Thread-23/Handler: Error compiling sitemap java.lang.NoClassDefFoundError: org/apache/cocoon/generation/AbstractGenerator at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java, Compiled Code) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java, Compiled Code) at java.net.URLClassLoader.defineClass(URLClassLoader.java, Compiled Code) at java.net.URLClassLoader.access$100(URLClassLoader.java, Compiled Code) at java.net.URLClassLoader$1.run(URLClassLoader.java, Compiled Code) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java, Compiled Code) at java.lang.ClassLoader.loadClass(ClassLoader.java, Compiled Code) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java, Compiled Code) at java.lang.ClassLoader.loadClass(ClassLoader.java, Compiled Code) at org.apache.tomcat.loader.AdaptiveClassLoader.loadClass(AdaptiveClassLoader.j ava, Compiled Code) at java.lang.ClassLoader.loadClass(ClassLoader.java, Compiled Code) at java.lang.ClassLoader.loadClass(ClassLoader.java, Compiled Code) at org.apache.cocoon.util.ClassUtils.loadClass(ClassUtils.java, Compiled Code) at org.apache.cocoon.sitemap.AbstractSitemap.load_component(AbstractSitemap.jav a, Compiled Code) at org.apache.cocoon.www.sitemap_xmap$Configurer.configGenerators(sitemap_xmap. java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.configure(sitemap_xmap.java, Compiled Code) at org.apache.avalon.excalibur.component.DefaultComponentFactory.newInstance(De faultComponentFactory.java, Compiled Code) at org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.initialize( ThreadSafeComponentHandler.java, Compiled Code) at org.apache.cocoon.components.language.generator.GeneratorSelector.addGenerat or(GeneratorSelector.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.addComp iledComponent(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.generat eResource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.createR esource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(Pr ogramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.run(Handler.java, Compiled Code) at java.lang.Thread.run(Thread.java:484) ---o--- The following is the code from my generator package rmitest; import java.io.IOException; import java.io.StringReader; import org.xml.sax.*; import org.xml.sax.helpers.*; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.generation.AbstractGenerator; public class Client extends AbstractGenerator { public void generate() throws IOException, SAXException, ProcessingException { String message = "<leeg/>"; XMLReader xmlreader = new org.apache.xerces.parsers.SAXParser(); xmlreader.setContentHandler(super.xmlConsumer); InputSource source = new InputSource(new StringReader(message)); xmlreader.parse(source); } } ---o--- To start Tomcat I use the following script: (everything actually on one line, but here on multiple lines for clarity) (large heapsize is so that fop won't give a java.lang.OutOfMemoryError) java -Xmx256217728 -cp /usr/local/jakarta-tomcat-3.2.3/classes: /usr/local/jakarta-tomcat-3.2.3/lib/ant.jar: /usr/local/jakarta-tomcat-3.2.3/lib/jasper.jar: /usr/local/jakarta-tomcat-3.2.3/lib/servlet.jar: /usr/local/jakarta-tomcat-3.2.3/lib/webserver.jar: /usr/local/jakarta-tomcat-3.2.3/lib/xercesImpl-2.0.0.jar: /usr/local/jakarta-tomcat-3.2.3/lib/xml-apis.jar: /usr/local/jakarta-tomcat-3.2.3/lib/zparser.jar: /usr/java/jdk1.3.1/lib/tools.jar: /home/erwin/public_html/thesis/coc2/src/be/ac/kuleuven/cs/rmitest/compiled/ -Dtomcat.home=/usr/local/jakarta-tomcat-3.2.3 org.apache.tomcat.startup.Tomcat The last path in the classpath is the location of the generator (rmitest/Client.class thus). ---o--- I use the following command to compile my generator: javac -classpath .:jar/xerces.jar: /usr/local/jakarta-tomcat-3.2.3/webapps/cocoon/WEB-INF/lib/cocoon-2.0.1.jar: /usr/local/jakarta-tomcat-3.2.3/webapps/cocoon/WEB-INF/lib/avalon-framework- 4.1.1.jar: /usr/local/jakarta-tomcat-3.2.3/webapps/cocoon/WEB-INF/lib/avalon-excalibur- 4.1.jar -d compiled/ rmitest/Client.java ---o--- Well, the obvious question is: how can I get my generator to work? Have I forgotten/overlooked something or what am I doing wrong? Tnx in advance. --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>
