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]>