Hi all, I am currently trying to create my own action for cocoon 2. Moreover, I am trying to use the AbstractMultiAction class so I can call methods on the action via a http post form field. Unfortunately I have been able to compile it, but get a Class Not Found Exception when I try access the URL that points to the sitemap with the mounted action. I am not trying to use the action, I just have the action mounted. Below is my java action code and I have attached my stack trace/sitemap as one text file. Any help would be appreciated. I am using red hat 8.0, j2sdk 1.4, and a cocoon 2.x build from about a month ago.
Thanks in Advance *****************ACTION JAVA CODE****************** /* * TaskAction.java * * Created on January 14, 2003, 12:16 PM */ package org.apache.cocoon.acting; /** * * @author Julian */ import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.ContextException; import org.apache.avalon.framework.context.Contextualizable; import org.apache.avalon.framework.parameters.ParameterException; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.Constants; import org.apache.cocoon.ProcessingException; import org.apache.cocoon.acting.AbstractMultiAction; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.environment.Redirector; import org.apache.cocoon.environment.Request; import org.apache.cocoon.environment.SourceResolver; import java.util.Map; import com.ethidium.wEMR.classes.Task; import com.ethidium.wEMR.classes.TaskManager; import com.ethidium.wEMR.classes.TaskGroup; public class TaskAction extends AbstractMultiAction implements ThreadSafe { public static final String TASK_ACTION = "task-action"; public static final String SUBJECT_NODE = "task-subject-node"; public static final String CATEGORY = "task-category"; public static final String DEST_CATEGORY = "task-dest-category"; public static final String DEST_SUBJECT_NODE = "task-dest-subject-node"; public static final String TASK_TITLE = "task-title"; public static final String TASK_DESCRIPTION = "task-description"; public static final String TASK_DUE_DATE = "task-due-date"; public static final String TASK_PRIORITY = "task-priority"; public static final String TASK_STATUS = "task-status"; public static final String TASK_URI = "task-uri"; public static final String TASK_OWNER = "task-owner"; /*public Map act (Redirector redirector, SourceResolver resolver, Map objectModel, String source, Parameters params) { Map sitemapParams = new HashMap(); sitemapParams.put("world", "hello"); Request request = ObjectModelHelper.getRequest(objectModel); action = request.getAttribute("action"); return sitemapParams; }*/ public Map doCreateTask(Redirector redirector, SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws Exception { Request request = ObjectModelHelper.getRequest(objectModel); //determine dest of task to be created String subjectNode = parameters.getParameter(SUBJECT_NODE, request.getParameter(SUBJECT_NODE)); String category = parameters.getParameter(CATEGORY, request.getParameter(CATEGORY)); //get task values String taskTitle = parameters.getParameter(TASK_TITLE, request.getParameter(TASK_TITLE)); String taskDescription = parameters.getParameter(TASK_DESCRIPTION, request.getParameter(TASK_DESCRIPTION)); String taskDueDate = parameters.getParameter(TASK_DUE_DATE, request.getParameter(TASK_DUE_DATE)); String taskPriority = parameters.getParameter(TASK_PRIORITY, request.getParameter(TASK_PRIORITY)); String taskStatus = parameters.getParameter(TASK_STATUS, request.getParameter(TASK_STATUS)); String taskURI = parameters.getParameter(TASK_URI, request.getParameter(TASK_URI)); String taskOwner = parameters.getParameter(TASK_OWNER, request.getParameter(TASK_OWNER)); getLogger().info("create task "+taskTitle+" at "+subjectNode+"/"+category); TaskManager taskManager = new TaskManager(); Task task = new Task(taskOwner, taskTitle, taskDescription, taskURI, taskDueDate, taskPriority, taskStatus); taskManager.storeTask(subjectNode, category, task); return EMPTY_MAP; } } __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com
************************STACKTRACE**************************** 2003-01-20 15:37:06 StandardWrapperValve[Cocoon2]: Servlet.service() for servlet Cocoon2 threw exception javax.servlet.ServletException: Servlet execution threw an exception at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.ethidium.java.servlet.filter.SessionFilter.doFilter(SessionFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.ethidium.java.servlet.filter.RequestFilter.doFilter(RequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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:643) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:471) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151) at java.lang.Thread.run(Thread.java:536) ----- Root Cause ----- java.lang.NoClassDefFoundError: org/apache/cocoon/acting/AbstractMultiAction at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:502) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) at java.net.URLClassLoader.defineClass(URLClassLoader.java:250) at java.net.URLClassLoader.access$100(URLClassLoader.java:54) at java.net.URLClassLoader$1.run(URLClassLoader.java:193) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:186) at org.apache.catalina.loader.StandardClassLoader.findClass(StandardClassLoader.java:621) at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:958) at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:857) at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:941) at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:857) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1414) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1274) at org.apache.cocoon.components.ExtendedComponentSelector.configure(ExtendedComponentSelector.java:264) at org.apache.cocoon.components.treeprocessor.sitemap.ComponentsSelector.configure(ComponentsSelector.java:185) at org.apache.avalon.excalibur.component.DefaultComponentFactory.newInstance(DefaultComponentFactory.java:264) at org.apache.avalon.excalibur.component.ThreadSafeComponentHandler.initialize(ThreadSafeComponentHandler.java:98) at org.apache.avalon.excalibur.component.ExcaliburComponentManager.initialize(ExcaliburComponentManager.java:513) at org.apache.cocoon.components.LifecycleHelper.setupComponent(LifecycleHelper.java:273) at org.apache.cocoon.components.LifecycleHelper.setupComponent(LifecycleHelper.java:188) at org.apache.cocoon.components.treeprocessor.sitemap.SitemapLanguage.createComponentManager(SitemapLanguage.java:108) at org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder.build(DefaultTreeBuilder.java:409) at org.apache.cocoon.components.treeprocessor.DefaultTreeBuilder.build(DefaultTreeBuilder.java:390) at org.apache.cocoon.components.treeprocessor.TreeProcessor.setupRootNode(TreeProcessor.java:392) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:311) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:299) at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:134) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84) at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:153) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:143) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:317) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:299) at org.apache.cocoon.Cocoon.process(Cocoon.java:596) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1104) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.ethidium.java.servlet.filter.SessionFilter.doFilter(SessionFilter.java:144) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at com.ethidium.java.servlet.filter.RequestFilter.doFilter(RequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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:643) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:471) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) 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:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151) at java.lang.Thread.run(Thread.java:536) ***************************SITEMAP******************************************** <?xml version="1.0"?> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <!-- =========================== Components =================================== --> <map:components> <map:generators default="file"/> <map:transformers default="xslt"/> <map:readers default="resource"/> <map:serializers default="html"> <map:serializer logger="sitemap.serializer.xml" mime-type="text/xml" name="xml" src="org.apache.cocoon.serialization.XMLSerializer"/> <map:serializer logger="sitemap.serializer.html" mime-type="text/html" name="html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer"> <buffer-size>1024</buffer-size> </map:serializer> </map:serializers> <map:matchers default="wildcard"/> <map:selectors default="browser"/> <map:actions> <map:action name="eTask" src="com.ethidium.cocoon.action.TaskAction"/> <!--map:action name="auth-protect" logger="sitemap.action.auth-protect" src="org.apache.cocoon.webapps.authentication.acting.AuthAction"/> <map:action name="auth-login" logger="sitemap.action.auth-login" src="org.apache.cocoon.webapps.authentication.acting.LoginAction"/> <map:action name="auth-logout" logger="sitemap.action.auth-logout" src="org.apache.cocoon.webapps.authentication.acting.LogoutAction"/> <map:action name="auth-loggedIn" logger="sitemap.action.auth-loggedIn" src="org.apache.cocoon.webapps.authentication.acting.LoggedInAction"/--> </map:actions> </map:components> <!-- =========================== Pipelines ================================= --> <map:pipelines> <!--map:component-configurations> <authentication-manager> <handlers> <handler name="slidehandler" xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <redirect-to uri="cocoon://samples/slide/login.html"/> <authentication uri="cocoon:raw:/authenticate"/> </handler> </handlers> </authentication-manager> </map:component-configurations--> <map:pipeline> <map:match pattern="**"> <map:match type="request-parameter" pattern="xpath"> <map:generate src="xmldb:xindice://localhost:4080/db/{../1}#{1}"/> <map:transform src="task.xsl"/> <map:serialize type="html"/> </map:match> <map:generate src="xmldb:xindice://localhost:4080/db/{1}"/> <map:transform src="task.xsl"/> <map:serialize type="html"/> </map:match> </map:pipeline> </map:pipelines> </map:sitemap>
--------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>