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

 

Reply via email to