|
Hi again.
I hope this is the right newsgroup for this kind of question, but I couldn’t see any similar threads in Cocoon-User.
I have tried looking through several sources, but I couldn’t find some sort of HowTo for writing own components. I have tried creating one by having a look at the hsqldb Classes, but I can’t get the thing to work. Every time I add the attribute for a user-role in the cocoon.xconf file, but I always get a “java.lang.NullPointerException” in the /WEB-INF/cocoon.log.000001 file
Here the soure for my roles file :
<?xml version="1.0"?> <role-list> ������ <role name="org.apache.cocoon.components.exist.Exist" shorthand="exist-server" default-class="org.apache.cocoon.components.exist.ExistImpl"/> </role-list>
And the config-part of my cocoon.xconf : ... ������ <exist-server class="org.apache.cocoon.components.ExistImpl" pool-max="1" pool-min="1"> ������������ <parameter name="http-port" value="8010"/> ������������ <parameter name="rpc-port" value="8011"/> ������ </exist-server> …
I have created two classes : 1. org.apache.cocoon.components.exist.Exist :
package org.apache.cocoon.components.exist; import org.apache.avalon.framework.component.Component; public interface Exist extends Component { ��� String ROLE = "org.apache.cocoon.components.exist.Exist"; }
2. org.apache.cocoon.components.exist.ExistImpl :
package org.apache.cocoon.components.exist;
import org.apache.avalon.framework.activity.Startable; 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.logger.AbstractLoggable; import org.apache.avalon.framework.parameters.Parameters; import org.apache.avalon.framework.parameters.Parameterizable; import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.Constants;
import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.sql.SQLException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.util.Enumeration;
import org.exist.ServerBean;
/** �*� �berschrift: eXist XML-Datenbankerweitrung um Lokle Interfaces Beschreibung: �*� Copyright: Copyright (c) 2002 Organisation: C-Ware IT-Service �* �*@author���� Christofer Dutz �*@created��� 14. Februar 2002 �*@version��� 1.0 �*/
public class ExistImpl extends AbstractLoggable implements Exist, ������� Parameterizable, ������� Contextualizable, ������� ThreadSafe, ������� Runnable, ������� Startable {
��� private ServerBean server = null;
��� /** ���� *� Initialize the ServerImpl. A few options can be used : ���� *� <UL> ���� *��� <LI> http-port = port where the http-server is listening</LI> ���� *��� <LI> rpc-port = port where the rpc-server is listening</LI> ���� *� </UL> ���� * ���� * ���� *@param� params� Description of the Parameter ���� */ ��� public void parameterize(Parameters params) { ������� if (this.getLogger().isDebugEnabled()) { ����������� this.getLogger().debug("Parameterize ServerImpl"); ������� } ������� this.server = ServerBean.getInstance(); ������� this.server.setHttpPort(params.getParameterAsInteger("http-port", 0)); ������� this.server.setRpcPort(params.getParameterAsInteger("rpc-port", 0)); ������� if (this.getLogger().isDebugEnabled()) { ����������� this.getLogger().debug("Configure ServerImpl" + ������������������� ((params.getParameterAsInteger("with http-port", 0) == 0) ? " http-port : " + params.getParameter("http-port", "0") : "") + ������������������� ((params.getParameterAsInteger("with rpc-port", 0) == 0) ? " rpc-port : " + params.getParameter("rpc-port", "0") : "")); ������� } ��� }
��� /** ���� *� Contextualize this class ���� * ���� *@param� context�������������� Description of the Parameter ���� *@exception� ContextException� Description of the Exception ���� */ ��� public void contextualize(Context context) throws ContextException { ������� org.apache.cocoon.environment.Context ctx = ��������������� (org.apache.cocoon.environment.Context) context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT);
������� try { ����������� String dbPath = new File(ctx.getRealPath("/WEB-INF/xmldb")).getCanonicalPath(); ����������� this.server.setHome(dbPath); ����������� if (this.getLogger().isDebugEnabled()) { ��������������� this.getLogger().debug("database is : " + dbPath); ����������� } ������� } catch (MalformedURLException mue) { ����������� getLogger().error("MalformedURLException - Could not get database directory ", mue); ������� } catch (IOException ioe) { ����������� this.getLogger().error("IOException - Could not get database directory ", ioe); ������� } ��� }
��� /** ���� *� Start the server ��� �*/ ��� public void start() { ������� if (!this.server.isActive()) { ����������� this.server.startup(); ������� } ��� }
��� /** ���� *� Stop the server ���� */ ��� public void stop() { ������� if (this.server.isActive()) { ����������� this.server.shutdown(); ������� } ��� }
��� /** ���� *� Main processing method for the ServerImpl object ���� */ ��� public void run() { ������� if (!this.server.isActive()) { ����������� this.server.startup(); ������� } ��� } }
The result I get in the log-file is :
DEBUG�� (2002-02-15) 17:44.22:287�� [cocoon� ] (Unknown-URI) Unknown-thread/Cocoon: Root configuration: cocoon DEBUG�� (2002-02-15) 17:44.22:287�� [cocoon� ] (Unknown-URI) Unknown-thread/Cocoon: Configuration version: 2.0 DEBUG�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/DefaultComponentFactory: ComponentFactory creating new instance of org.apache.cocoon.components.parser.JaxpParser. DEBUG�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/JaxpParser: Looking up org.apache.cocoon.components.resolver.Resolver DEBUG�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/ExcaliburComponentManager: Could not find ComponentHandler, attempting to create one for role: org.apache.cocoon.components.resolver.Resolver DEBUG�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/JaxpParser: JaxpParser: Could not yet find org.apache.cocoon.components.resolver.Resolver ERROR�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/Cocoon: Could not configure Cocoon environment java.lang.NullPointerException ����� at org.apache.cocoon.Cocoon.configure(Cocoon.java:341) ����� at org.apache.cocoon.Cocoon.initialize(Cocoon.java:197) ����� at org.apache.cocoon.servlet.CocoonServlet.createCocoon(CocoonServlet.java:864) ����� at org.apache.cocoon.servlet.CocoonServlet.init(CocoonServlet.java:220) ����� at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:852) ����� at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3267) ����� at org.apache.catalina.core.StandardContext.start(StandardContext.java:3384) ����� at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) ����� at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:454) ����� at org.apache.catalina.core.StandardHost.install(StandardHost.java:712) ����� at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:599) ����� at org.apache.catalina.startup.HostConfig.start(HostConfig.java:777) ����� at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:463) ����� at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:155) ����� at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1131) ����� at org.apache.catalina.core.StandardHost.start(StandardHost.java:612) ����� at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123) ����� at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:307) ����� at org.apache.catalina.core.StandardService.start(StandardService.java:388) ����� at org.apache.catalina.core.StandardServer.start(StandardServer.java:505) ����� at org.apache.catalina.startup.Catalina.start(Catalina.java:776) ����� at org.apache.catalina.startup.Catalina.execute(Catalina.java:681) ����� at org.apache.catalina.startup.Catalina.process(Catalina.java:179) ����� at java.lang.reflect.Method.invoke(Native Method) ����� at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243) DEBUG�� (2002-02-15) 17:44.22:297�� [cocoon� ] (Unknown-URI) Unknown-thread/DefaultComponentFactory: ComponentFactory decommissioning instance of org.apache.cocoon.components.parser.JaxpParser.
Have I missed configuring anything ? Or have I done something wrong ? I simply can’t get any usefull information from the log L
Plese help me ( or redirect me if this doesn’t belong here )
Thanx in advance, ���� Christofer Dutz
Christofer Dutz C-Ware IT-Service Inh. Christofer Dutz Goethestr. 18 64372 Ober-Ramstadt www.c-ware.de
|
