You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Peter Sparkes <pe...@didm.co.uk> on 2006/06/06 18:50:16 UTC

eXist xmldb

Hi

I am trying to install the eXist xmldb into cocoon 2.1.9 running under 
tomcat 5.5, please:

1. Where can I find  the best documentation  on how to install eXist 
xmldb into cocoon. There are several such docs on the web but all the 
ones I have found are old and they mention eXist jars which are not in 
the latest eXist distribution.

2. Where can I find documentation on the "xmldb:// pseudo-protocol" 
other than the apidocs and hoe to use it

Thanks

Peter Sparkes


Re: AW: eXist xmldb

Posted by dkropotova <Da...@semantico.com>.
Hello Abbas,

I followed your instractions. And I can now access my eXist db via xmldb
protocol. 

I am now trying to use xquery generator, that i have specified as
<map:generator name="xquery" src="org.exist.cocoon.XQueryGenerator"/>

While accessing my db now it gives me the following error
org.exist.util.DatabaseConfigurationException: cannot read data directory:
C:\Documents and
Settings\daria\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\Marsden-Reader-Prototype\WEB-INF\data

If I change the data directory in the conf.xml to point to my db (it is at
C:\apache-tomcat-5.5.25\webapps\exist-1.1.1-newcore\WEB-INF\data). It then
says that the database has been locked org.exist.EXistException: The
database directory seems to be locked by another database instance. Found a
valid lock file:
C:\apache-tomcat-5.5.25\webapps\exist-1.1.1-newcore\WEB-INF\data\dbx_dir.lck

I was wondering is there a way of specifing the exist db's location rather
than copying it to cocoon/WEB-INF/data/

Many thanks!!!
Daria



Abbas Mousavi wrote:
> 
>   Hi Peter and Chris
>    
>   I think that I should add something to the chris mail:
>      
> Mainly - as I know - there is two document for Installing exist with
> cocoon on tomcat one at Cocoon Wiki and One at eXist Wiki:
>    http://wiki.exist-db.org/space/CocoonInstall
> http://wiki.apache.org/cocoon/EXistInCocoon?highlight=%28exist%29
> 
>    
>   I prefer the document at eXist site, as Chris said, the document says
> that you should copy 
>       
>   * commons-pool-1.1.jar
>       * xmlrpc-1.2-patched.jar
>       * xmldb.jar
>       * exist.jar
>       * exist-optional.jar
>    
>   and optionaly
>       * castor-0.9.5-xml.jar
>       * commons-fileupload-1.0.jar
>       * isorelax.jar
>       * jgroups-all.jar
>       * xsdlib.jar
>       * msv.jar
>    
>   from cocoon distribution to cocoon/WEB-INF/lib, (the exact list of
> required jars depends on your needs.) then you should remove
>    
>       * xmldb-api-20030701.jar
>       * xmldb-common-20030701.jar
>       * xmldb-xupdate-20040205.jar
>    
>   From cocoon/WEB-INF/lib.
>    
>   Next, copy the central configuration file for exists from
> $EXIST_HOME/webapp/WEB-INF/conf.xml to cocoon/WEB-INF.
>   If you need to use the SOAP service, you should also copy
> $EXIST_HOME/webapp/WEB-INF/server-config.wsdd to cocoon/WEB-INF.
>   In order to move the data in the eXist database, copy the contents of
> $EXIST_HOME/webapp/WEB-INF/data/ to cocoon/WEB-INF/data/. 
>    
>   Edit cocoon/WEB-INF/web.xml. At the top, before the Cocoon servlet is
> configured, add the following lines:
>   You can eliminate the servlets that you don’t need them, You may skip
> the AxisServlet, AdminServlet, WebDAVServlet or RpcServlet (needed if you
> want to access the database instance from a remote client app), but you
> definitely need EXistServlet here
>    
>   <!-- RpcServlet provides XML-RPC access to eXist -->
>     <servlet>
>       <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
>       <servlet-class>org.exist.xmlrpc.RpcServlet</servlet-class>
>     </servlet>
>    
>   <servlet> <servlet-name>WebDAVServlet</servlet-name>
> <servlet-class>org.exist.http.servlets.WebDAVServlet</servlet-class>
>    
>   <init-param> <param-name>authentication</param-name>
> <param-value>basic</param-value> </init-param> </servlet>
>    
>   <!-- XQueryServlet generates HTML from an XQuery file. --> <servlet>
> <servlet-name>XQueryServlet</servlet-name>
> <servlet-class>org.exist.http.servlets.XQueryServlet</servlet-class>
>    
>   <init-param> <param-name>uri</param-name>
> <param-value>xmldb:exist:///db</param-value> </init-param>
>    
>   <init-param> <param-name>form-encoding</param-name>
> <param-value>UTF-8</param-value> </init-param>
>    
>   <init-param> <param-name>container-encoding</param-name>
> <param-value>UTF-8</param-value> </init-param>
>    
>   <init-param> <param-name>encoding</param-name>
> <param-value>UTF-8</param-value> </init-param> </servlet>
>    
>   <servlet> <servlet-name>EXistServlet</servlet-name>
> <servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>
>    
>   <!-- where to find eXist's configuration file relative to the basedir of
> the web-application. --> <init-param>
> <param-name>configuration</param-name> <param-value>conf.xml</param-value>
> </init-param>
>    
>   <!-- eXist's home directory. All file names in the configuration file
> will be relative to this directory. --> <init-param>
> <param-name>basedir</param-name> <param-value>WEB-INF/</param-value>
> </init-param>
>    
>   <init-param> <param-name>start</param-name>
> <param-value>true</param-value> </init-param>
>    
>   <load-on-startup>1</load-on-startup>
>    
>   </servlet>
>    
>   <!-- configure the Axis servlets. Axis provides eXist's web-services via
> SOAP --> <servlet> <servlet-name>AxisServlet</servlet-name>
> <display-name>Apache-Axis Servlet</display-name>
> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
> </servlet>
>    
>   <servlet> <servlet-name>AdminServlet</servlet-name> <display-name>Axis
> Admin Servlet</display-name> <servlet-class>
> org.apache.axis.transport.http.AdminServlet </servlet-class>
> <load-on-startup>100</load-on-startup> </servlet>
>    
>    
>   Next, you need to add url mappings for these servlets. At the bottom
> section of the file, again before the Cocoon mapping, add:
>   Again you can use only url mappings that you need
>    
>   <!-- Define where the XMLRPC servlet listens -->
>     <servlet-mapping>
>       <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
>       <url-pattern>/xmlrpc</url-pattern>
>     </servlet-mapping>
>    
>   <!-- eXist's DatabaseAdminServlet --> <servlet-mapping>
> <servlet-name>EXistServlet</servlet-name>
> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
>    
>   <servlet-mapping> <servlet-name>WebDAVServlet</servlet-name>
> <url-pattern>/webdav/*</url-pattern> </servlet-mapping>
>    
>   <!-- XQueryServlet --> <servlet-mapping>
> <servlet-name>XQueryServlet</servlet-name>
> <url-pattern>*.xql</url-pattern> </servlet-mapping>
>    
>   <!-- The following servlet-mappings are for Axis (SOAP) -->
> <servlet-mapping> <servlet-name>AxisServlet</servlet-name>
> <url-pattern>/axis-servlet/AxisServlet</url-pattern> </servlet-mapping>
>    
>   <servlet-mapping> <servlet-name>AxisServlet</servlet-name>
> <url-pattern>*.jws</url-pattern> </servlet-mapping>
>    
>   <servlet-mapping> <servlet-name>AxisServlet</servlet-name>
> <url-pattern>/services/*</url-pattern> </servlet-mapping>
>    
>   <servlet-mapping> <servlet-name>AdminServlet</servlet-name>
> <url-pattern>/axis-servlet/AdminServlet</url-pattern> </servlet-mapping>
>    
>    
>   Then edit cocoon/WEB-INF/cocoon.xconf. Change the section that
> configures the xmldb pseudo protocol. Add the xmldb driver for eXist:
>   <!-- xmldb pseudo protocol -->
>   <component-instance 
>   class="org.apache.cocoon.components.source.impl.XMLDBSourceFactory" 
>   name="xmldb">
>     <!-- Add here other XML:DB compliant databases' drivers -->
>     <driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>
>   </component-instance>
>    
>   This configuration works but from my experience it is better that you
> also replace org.apache.cocoon.components.source.impl.XMLDBSourceFactory
> with org.exist.cocoon.XMLDBSourceFactory, since it seems that 
>   org.apache.cocoon.components.source.impl.XMLDBSourceFactory has some
> problems with unicode document, but org.exist.cocoon.XMLDBSourceFactory
> uses eXist’s xmldb source and is taylored to eXist and has no Unicode
> problem.
>    
>    
>   To use eXist's XSP logicsheet, edit the section on markup languages and
> include a reference to eXist's logicsheet at the top:
>    
>   <markup-languages>
>       <xsp-language logger="core.markup.xsp" name="xsp">
>         <parameter name="prefix" value="xsp"/>
>         <parameter name="uri" value="http://apache.org/xsp"/>
>    
>   <!--+ | Properties for the java language +--> <target-language
> name="java"> <!-- Defines the XSP Core logicsheet for the Java language
> --> <parameter name="core-logicsheet"
> value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
>   
>    
>   <builtin-logicsheet> <parameter name="prefix" value="xdb"/> <parameter
> name="uri" value="http://exist-db.org/xmldb/1.0"/> <parameter name="href"
> value="resource://org/exist/xmldb.xsl"/> </builtin-logicsheet> ...
>    
>   You should now be able to copy the contents of eXist's webapp directory
> ($EXIST_HOME/webapp) into a subdirectory of your Cocoon installation (e.g.
> cocoon/exist) and access eXist's main page and most examples. However,
> some examples won't work as they assume a fixed path /exist. The XQuery
> scripts need to be changed accordingly. 
>   Also you can use XQuery Generator as Chris said.
>    
>   Regards
>   Abbas
>   
> 		
> ---------------------------------
> Yahoo! Messenger with Voice. PC-to-Phone calls for ridiculously low rates.
> 

-- 
View this message in context: http://www.nabble.com/eXist-xmldb-tf1743163.html#a13911129
Sent from the Cocoon - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: AW: eXist xmldb

Posted by Peter Sparkes <pe...@didm.co.uk>.
Hi Chris,

Thank you - I am out of the office tomorrow so will set it up on Thursday.

Regards

Peter

> Hi Peter
>
>  
>
> Assuming you are using a relatively new version of exist (either the 
> snapshot or current subversion checkout) and you only want direct 
> access (no XML-RPC or other fancy network stuff)
>
> Here is what you have to do:
>
>  
>
> Copy the following jars to cocoons WEB-INF/lib directory:
>
> exist/exist.jar
>
> exist/exist-optional.jar
>
> exist/lib/core/antlr.jar
>
> exist/lib/core/commons-pool-1.2.jar
>
> exist/lib/core/xmldb.jar
>
> exist/lib/core/xmlrpc-1.2-patched.jar
>
>  
>
> Add the following to the Generators section of the sitemap:
>
> <map:generator name="xquery" src=" org.exist.cocoon.XQueryGenerator "/>
>
>  
>
> Add the following to your cocoon.xconf: inside the the 
> org.apache.cocoon.components.source.impl.XMLDBSourceFactory 
> configuration (there should be a xindice driver configured)
>
> <driver class=" org.exist.xmldb.DatabaseImpl" type="exist"/>
>
> I would recommend removing the unused driver, because I remember 
> cocoon trying to initialize the driver, but because of a missing 
> Xindice cocoon gets an error and skips the following drivers.
>
> This should result in the xmldb:exist pseudo protocol being accessible.
>
>  
>
> To start the server, add the following to the cocoon.xconf:
>
> <component role=" org.exist.server" 
> class="de.cware.cweb.system.xmldb.XmlDbServerImpl" 
> home="C:/home/domains" suffix="data/xmldb" minBrokers="1" maxBrokers="5"/>
>
> Well I have to admit, that I created my own Server component for 
> starting the db itself inside cocoon ... think you will have to have a 
> look for code looking like:
>
> BrokerPool.configure("exist", minBrokers, maxBrokers, config);
>
>  
>
> This is where initializing the BorkerPool for the instance is 
> initialted. Couldn't fin exactly which class is needed for this.
>
> If you don't manage to find it, I can send you mine, but that is made 
> for initializing multiple Database Instances automatically (one per 
> virtual hosts) but It would be suitable for a start J
>
>  
>
> Last not least, you have to place the exist config.file in the 
> WEB-INF/classes directory, so it can be found by the Configuration ... 
> think you can place it in WEB-INF/ directly, but I always use the 
> classpath access path.
>
>  
>
> Hope this helps you and I didn't miss anything (not using the original 
> DB server and Drivers anymore)
>
>  
>
> Regards,
>
>     Chris
>
>  
>
> ------------------------------------------------------------------------
>
> *Von:* Peter Sparkes [mailto:peter@didm.co.uk]
> *Gesendet:* Dienstag, 6. Juni 2006 18:50
> *An:* users@cocoon.apache.org
> *Betreff:* eXist xmldb
>
>  
>
> Hi
>
> I am trying to install the eXist xmldb into cocoon 2.1.9 running under 
> tomcat 5.5, please:
>
> 1. Where can I find  the best documentation  on how to install eXist 
> xmldb into cocoon. There are several such docs on the web but all the 
> ones I have found are old and they mention eXist jars which are not in 
> the latest eXist distribution.
>
> 2. Where can I find documentation on the "xmldb:// pseudo-protocol" 
> other than the apidocs and hoe to use it
>
> Thanks
>
> Peter Sparkes
>

AW: AW: AW: eXist xmldb

Posted by Christofer Dutz <du...@c-ware.de>.
Yet another try … common’ !!!!!

 

Another try … since the mailing list complained about my postings size :-(

 

 

Hi Peter,

 

Sorry fort he delayed response. I was out of office and full of work after that. I added the Souce for my eXist service to this mail. 

I have to explain this a little though. This service uses a directory specified by the “home” parameter and treats any subdirectory as instance name. In my case I have a directory called /home/domains and this contains one directory for every domain I host. The service now scans each directory if it possesses a directory specified by the “suffix” parameter. If it does, this is where the Exist instance is configured. 

 

This results in multiple Instances being configured. Unfortunately in cocoon every instance has to be configured in the cocoon.xconf so dynamically adding domains would not be possible. To circumvent this my modified XmlDbDriver is configured for the virtual instance “exist” and the instance is defined by the hostname part of the url so xmldb:exist://host1/db addresses the host1 instance and xmldb:exist://host2/db addresses host2. All remote-access code has been removed, since I only use local access. I also had to modify the XQuery generator since this uses the original Driver version and this tries to configure an “exist” instance after failing to access one with that name. I think I had to modify the original XQueryGenerator to support overriding with other default driver, so I added the source to this as well.

 

Here what to do to configure everything:

Add the following Generator definition to your root-sitemap:

<map:generator name="xquery" src="de.cware.cweb.system.xmldb.VirtualHostXQueryGenerator"/>

 

Add the following Driver definition to your cooon.xconf (remember to remove entries, that are not used):

            <driver class="de.cware.cweb.system.xmldb.VirtualHostDatabaseImpl" type="exist"/>

 

Configure the service itself in the cocoon.xconf:

            <component role="de.cware.cweb.system.xmldb.server" class="de.cware.cweb.system.xmldb.XmlDbServerImpl" home="C:/home/domains" suffix="data/xmldb" minBrokers="1" maxBrokers="5"/>

 

Create a config-file for exist containing the following code somewhere in the classpath and call it “xmldb.xconf”:

        <exist>

            <db-connection database="native" files="."

                pageSize="4096" cacheSize="48M" free_mem_min="5">

                

                <!-- Settings for the database connection pool:

                    - sync-period

                    defines how often the database will flush its 

                    internal buffers to disk. The sync thread will interrupt 

                    normal database operation after the specified number of 

                    milliseconds and write all dirty pages to disk.

                    - min: minimum number of connections to keep alive.

                    - max: maximum number of connections allowed.

                    - wait-before-shutdown:

                    defines how long the database instance will wait for running

                    operations to complete before it forces a shutdown.

                -->

                <pool min="1" max="20" sync-period="120000" wait-before-shutdown="120000"/>

                

                <recovery enabled="yes" sync-on-commit="no" journal-dir="data"        size="10M"/>

                

                <watchdog query-timeout="-1" output-size-limit="10000"/>

                

                <!--system-task class="org.exist.storage.DataBackup" period="120000">

                    <parameter name="output-dir" value="backup"/>

                    </system-task-->

            </db-connection>

            <xsl:copy-of select="serializer"/>

            <xsl:copy-of select="xupdate"/>

            <xsl:copy-of select="xquery"/>

            <indexer>

                <xsl:copy-of select="indexer/stopwords"/>

                <xsl:copy-of select="indexer/index"/>

                <entity-resolver>

                    <!--<xsl:copy-of select="indexer/entity-resolver/*"/>-->

                </entity-resolver>

            </indexer>

            <xsl:copy-of select="indexer"/>

        </exist>

 

Finally add the following jars to your cocoon distribution:

        exist/exist.jar

        exist/exist-optional.jar

        exist/lib/core/antlr.jar

        exist/lib/core/commons-pool-1.2.jar

        exist/lib/core/xmldb.jar

        < exist/lib/core/xmlrpc-1.2-patched.jar

 

Hope this get’s you started with creating your own eXist service (or you like mine so much that you simply start using this) ;) 

 

Kind regards, 

     Chris

 

PS: I cross-posted this to the eXist mailing list as well, since it might be useful here too.

 

[ c h r i s t o f e r   d u t z ]

 

IT-Berater

univativ GmbH & Co. KG

Robert-Bosch-Str. 7, 64293 Darmstadt

 

fon: 0 61 51 / 66 717 - 21

fax: 0 61 51 / 66 717 - 29

email: christofer.dutz@univativ.de

http://www.univativ.de

 

Darmstadt, Stuttgart, Karlsruhe, Düsseldorf


Re: AW: AW: eXist xmldb

Posted by Peter Sparkes <pe...@didm.co.uk>.
Hi Chris,

I am having difficulties, can you please help

To start the server, add the following to the cocoon.xconf:

<component role=" org.exist.server" 
class="de.cware.cweb.system.xmldb.XmlDbServerImpl" 
home="C:/home/domains" suffix="data/xmldb" minBrokers="1" maxBrokers="5"/>

Well I have to admit, that I created my own Server component for 
starting the db itself inside cocoon … think you will have to have a 
look for code looking like:

BrokerPool.configure(“exist”, minBrokers, maxBrokers, config);


1. I assume that the XmlDbServerImpl above is your own component for 
starting the db inside cocoon - is that true?
2. What is  home="C:/home/domains" for ?
3. What is  suffix="data/xmldb" for ?

 

This is where initializing the BorkerPool for the instance is 
initialted. Couldn’t fin exactly which class is needed for this.

If you don’t manage to find it, I can send you mine, but that is made 
for initializing multiple Database Instances automatically (one per 
virtual hosts) but It would be suitable for a start J

4. I can't manage it, can you please send me yours

Thanks Peter

> Hi All,
>
>  
>
> As I mentioned, my version only uses local access, so configuring all 
> these additional servlets is not necessary and the additional jars 
> aren’t needed.
>
> One thing I remembered thou:I think the Driver automatically 
> initializes the database if it can’t find an instance … had quite some 
> problems with this.
>
> Then it would be better to put the config-file in the place Abbas 
> recommended. It will then find it automatically.
>
>  
>
> Regards, chris
>
>  
>
>  
>
>  
>
>  
>
> ------------------------------------------------------------------------
>
> *Von:* Abbas Mousavi [mailto:abbasmousavi@yahoo.com]
> *Gesendet:* Mittwoch, 7. Juni 2006 01:19
> *An:* users@cocoon.apache.org
> *Betreff:* Re: AW: eXist xmldb
>
>  
>
> Hi Peter and Chris
>
>  
>
> I think that I should add something to the chris mail:
>
>  
> Mainly - as I know - there is two document for Installing exist with 
> cocoon on tomcat one at Cocoon Wiki and One at eXist Wiki:
>
>  http://wiki.exist-db.org/space/CocoonInstall
>
> http://wiki.apache.org/cocoon/EXistInCocoon?highlight=%28exist%29
>
>  
>
> I prefer the document at eXist site, as Chris said, the document says 
> that you should copy
>
>    
>
> * commons-pool-1.1.jar
>
>     * xmlrpc-1.2-patched.jar
>
>     * xmldb.jar
>
>     * exist.jar
>
>     * exist-optional.jar
>
>  
>
> and optionaly
>
>     * castor-0.9.5-xml.jar
>
>     * commons-fileupload-1.0.jar
>
>     * isorelax.jar
>
>     * jgroups-all.jar
>
>     * xsdlib.jar
>
>     * msv.jar
>
>  
>
> from cocoon distribution to cocoon/WEB-INF/lib, (the exact list of 
> required jars depends on your needs.) then you should remove
>
>  
>
>     * xmldb-api-20030701.jar
>
>     * xmldb-common-20030701.jar
>
>     * xmldb-xupdate-20040205.jar
>
>  
>
> From cocoon/WEB-INF/lib.
>
>  
>
> Next, copy the central configuration file for exists from 
> $EXIST_HOME/webapp/WEB-INF/conf.xml to cocoon/WEB-INF.
>
> If you need to use the SOAP service, you should also copy 
> $EXIST_HOME/webapp/WEB-INF/server-config.wsdd to cocoon/WEB-INF.
>
> In order to move the data in the eXist database, copy the contents of 
> $EXIST_HOME/webapp/WEB-INF/data/ to cocoon/WEB-INF/data/.
>
>  
>
> Edit cocoon/WEB-INF/web.xml. At the top, before the Cocoon servlet is 
> configured, add the following lines:
>
> You can eliminate the servlets that you don’t need them, You may 
> skip the AxisServlet, AdminServlet, WebDAVServlet or RpcServlet 
> (needed if you want to access the database instance from a remote 
> client app), but you definitely need EXistServlet here
>
>  
>
> <!-- RpcServlet provides XML-RPC access to eXist -->
>
>   <servlet>
>
>     <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
>
>     <servlet-class>org.exist.xmlrpc.RpcServlet</servlet-class>
>
>   </servlet>
>
>  
>
> <servlet> <servlet-name>WebDAVServlet</servlet-name> 
> <servlet-class>org.exist.http.servlets.WebDAVServlet</servlet-class>
>
>  
>
> <init-param> <param-name>authentication</param-name> 
> <param-value>basic</param-value> </init-param> </servlet>
>
>  
>
> <!-- XQueryServlet generates HTML from an XQuery file. --> <servlet> 
> <servlet-name>XQueryServlet</servlet-name> 
> <servlet-class>org.exist.http.servlets.XQueryServlet</servlet-class>
>
>  
>
> <init-param> <param-name>uri</param-name> 
> <param-value>xmldb:exist:///db</param-value> </init-param>
>
>  
>
> <init-param> <param-name>form-encoding</param-name> 
> <param-value>UTF-8</param-value> </init-param>
>
>  
>
> <init-param> <param-name>container-encoding</param-name> 
> <param-value>UTF-8</param-value> </init-param>
>
>  
>
> <init-param> <param-name>encoding</param-name> 
> <param-value>UTF-8</param-value> </init-param> </servlet>
>
>  
>
> <servlet> <servlet-name>EXistServlet</servlet-name> 
> <servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>
>
>  
>
> <!-- where to find eXist's configuration file relative to the basedir 
> of the web-application. --> <init-param> 
> <param-name>configuration</param-name> 
> <param-value>conf.xml</param-value> </init-param>
>
>  
>
> <!-- eXist's home directory. All file names in the configuration file 
> will be relative to this directory. --> <init-param> 
> <param-name>basedir</param-name> <param-value>WEB-INF/</param-value> 
> </init-param>
>
>  
>
> <init-param> <param-name>start</param-name> 
> <param-value>true</param-value> </init-param>
>
>  
>
> <load-on-startup>1</load-on-startup>
>
>  
>
> </servlet>
>
>  
>
> <!-- configure the Axis servlets. Axis provides eXist's web-services 
> via SOAP --> <servlet> <servlet-name>AxisServlet</servlet-name> 
> <display-name>Apache-Axis Servlet</display-name> 
> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> 
> </servlet>
>
>  
>
> <servlet> <servlet-name>AdminServlet</servlet-name> <display-name>Axis 
> Admin Servlet</display-name> <servlet-class> 
> org.apache.axis.transport.http.AdminServlet </servlet-class> 
> <load-on-startup>100</load-on-startup> </servlet>
>
>  
>
>  
>
> Next, you need to add url mappings for these servlets. At the bottom 
> section of the file, again before the Cocoon mapping, add:
>
> Again you can use only url mappings that you need
>
>  
>
> <!-- Define where the XMLRPC servlet listens -->
>
>   <servlet-mapping>
>
>     <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
>
>     <url-pattern>/xmlrpc</url-pattern>
>
>   </servlet-mapping>
>
>  
>
> <!-- eXist's DatabaseAdminServlet --> <servlet-mapping> 
> <servlet-name>EXistServlet</servlet-name> 
> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
>
>  
>
> <servlet-mapping> <servlet-name>WebDAVServlet</servlet-name> 
> <url-pattern>/webdav/*</url-pattern> </servlet-mapping>
>
>  
>
> <!-- XQueryServlet --> <servlet-mapping> 
> <servlet-name>XQueryServlet</servlet-name> 
> <url-pattern>*.xql</url-pattern> </servlet-mapping>
>
>  
>
> <!-- The following servlet-mappings are for Axis (SOAP) --> 
> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> 
> <url-pattern>/axis-servlet/AxisServlet</url-pattern> </servlet-mapping>
>
>  
>
> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> 
> <url-pattern>*.jws</url-pattern> </servlet-mapping>
>
>  
>
> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> 
> <url-pattern>/services/*</url-pattern> </servlet-mapping>
>
>  
>
> <servlet-mapping> <servlet-name>AdminServlet</servlet-name> 
> <url-pattern>/axis-servlet/AdminServlet</url-pattern> </servlet-mapping>
>
>  
>
>  
>
> Then edit cocoon/WEB-INF/cocoon.xconf. Change the section that 
> configures the xmldb pseudo protocol. Add the xmldb driver for eXist:
>
> <!-- xmldb pseudo protocol -->
>
> <component-instance
>
> class="org.apache.cocoon.components.source.impl.XMLDBSourceFactory"
>
> name="xmldb">
>
>   <!-- Add here other XML:DB compliant databases' drivers -->
>
>   <driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>
>
> </component-instance>
>
>  
>
> This configuration works but from my experience it is better that you 
> also replace 
> org.apache.cocoon.components.source.impl.XMLDBSourceFactory with 
> org.exist.cocoon.XMLDBSourceFactory, since it seems that
>
> org.apache.cocoon.components.source.impl.XMLDBSourceFactory has some 
> problems with unicode document, but 
> org.exist.cocoon.XMLDBSourceFactory uses eXist’s xmldb source and is 
> taylored to eXist and has no Unicode problem.
>
>  
>
>  
>
> To use eXist's XSP logicsheet, edit the section on markup languages 
> and include a reference to eXist's logicsheet at the top:
>
>  
>
> <markup-languages>
>
>     <xsp-language logger="core.markup.xsp" name="xsp">
>
>       <parameter name="prefix" value="xsp"/>
>
>       <parameter name="uri" value="http://apache.org/xsp"/>
>
>  
>
> <!--+ | Properties for the java language +--> <target-language 
> name="java"> <!-- Defines the XSP Core logicsheet for the Java 
> language --> <parameter name="core-logicsheet" 
> value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
>
>  
>
> <builtin-logicsheet> <parameter name="prefix" value="xdb"/> <parameter 
> name="uri" value="http://exist-db.org/xmldb/1.0"/> <parameter 
> name="href" value="resource://org/exist/xmldb.xsl"/> 
> </builtin-logicsheet> ...
>
>  
>
> You should now be able to copy the contents of eXist's webapp 
> directory ($EXIST_HOME/webapp) into a subdirectory of your Cocoon 
> installation (e.g. cocoon/exist) and access eXist's main page and most 
> examples. However, some examples won't work as they assume a fixed 
> path /exist. The XQuery scripts need to be changed accordingly.
>
> Also you can use XQuery Generator as Chris said.
>
>  
>
> Regards
>
> Abbas
>
> ------------------------------------------------------------------------
>
> Yahoo! Messenger with Voice. 
> <http://us.rd.yahoo.com/mail_us/taglines/postman3/*http:/us.rd.yahoo.com/evt=39666/*http:/messenger.yahoo.com> 
> PC-to-Phone calls for ridiculously low rates.
>

AW: AW: eXist xmldb

Posted by Christofer Dutz <du...@c-ware.de>.
Hi All,

 

As I mentioned, my version only uses local access, so configuring all these additional servlets is not necessary and the additional jars aren’t needed. 

One thing I remembered thou:I think the Driver automatically initializes the database if it can’t find an instance … had quite some problems with this. 

Then it would be better to put the config-file in the place Abbas recommended. It will then find it automatically.

 

Regards, chris

 

 

 

 

  _____  

Von: Abbas Mousavi [mailto:abbasmousavi@yahoo.com] 
Gesendet: Mittwoch, 7. Juni 2006 01:19
An: users@cocoon.apache.org
Betreff: Re: AW: eXist xmldb

 

Hi Peter and Chris

 

I think that I should add something to the chris mail:

 
Mainly - as I know - there is two document for Installing exist with cocoon on tomcat one at Cocoon Wiki and One at eXist Wiki:

 http://wiki.exist-db.org/space/CocoonInstall

http://wiki.apache.org/cocoon/EXistInCocoon?highlight=%28exist%29



 

I prefer the document at eXist site, as Chris said, the document says that you should copy 

    

* commons-pool-1.1.jar

    * xmlrpc-1.2-patched.jar

    * xmldb.jar

    * exist.jar

    * exist-optional.jar

 

and optionaly

    * castor-0.9.5-xml.jar

    * commons-fileupload-1.0.jar

    * isorelax.jar

    * jgroups-all.jar

    * xsdlib.jar

    * msv.jar

 

from cocoon distribution to cocoon/WEB-INF/lib, (the exact list of required jars depends on your needs.) then you should remove

 

    * xmldb-api-20030701.jar

    * xmldb-common-20030701.jar

    * xmldb-xupdate-20040205.jar

 

>From cocoon/WEB-INF/lib.

 

Next, copy the central configuration file for exists from $EXIST_HOME/webapp/WEB-INF/conf.xml to cocoon/WEB-INF.

If you need to use the SOAP service, you should also copy $EXIST_HOME/webapp/WEB-INF/server-config.wsdd to cocoon/WEB-INF.

In order to move the data in the eXist database, copy the contents of $EXIST_HOME/webapp/WEB-INF/data/ to cocoon/WEB-INF/data/. 

 

Edit cocoon/WEB-INF/web.xml. At the top, before the Cocoon servlet is configured, add the following lines:

You can eliminate the servlets that you don’t need them, You may skip the AxisServlet, AdminServlet, WebDAVServlet or RpcServlet (needed if you want to access the database instance from a remote client app), but you definitely need EXistServlet here

 

<!-- RpcServlet provides XML-RPC access to eXist -->

  <servlet>

    <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>

    <servlet-class>org.exist.xmlrpc.RpcServlet</servlet-class>

  </servlet>

 

<servlet> <servlet-name>WebDAVServlet</servlet-name> <servlet-class>org.exist.http.servlets.WebDAVServlet</servlet-class>

 

<init-param> <param-name>authentication</param-name> <param-value>basic</param-value> </init-param> </servlet>

 

<!-- XQueryServlet generates HTML from an XQuery file. --> <servlet> <servlet-name>XQueryServlet</servlet-name> <servlet-class>org.exist.http.servlets.XQueryServlet</servlet-class>

 

<init-param> <param-name>uri</param-name> <param-value>xmldb:exist:///db</param-value> </init-param>

 

<init-param> <param-name>form-encoding</param-name> <param-value>UTF-8</param-value> </init-param>

 

<init-param> <param-name>container-encoding</param-name> <param-value>UTF-8</param-value> </init-param>

 

<init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </servlet>

 

<servlet> <servlet-name>EXistServlet</servlet-name> <servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>

 

<!-- where to find eXist's configuration file relative to the basedir of the web-application. --> <init-param> <param-name>configuration</param-name> <param-value>conf.xml</param-value> </init-param>

 

<!-- eXist's home directory. All file names in the configuration file will be relative to this directory. --> <init-param> <param-name>basedir</param-name> <param-value>WEB-INF/</param-value> </init-param>

 

<init-param> <param-name>start</param-name> <param-value>true</param-value> </init-param>

 

<load-on-startup>1</load-on-startup>

 

</servlet>

 

<!-- configure the Axis servlets. Axis provides eXist's web-services via SOAP --> <servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet>

 

<servlet> <servlet-name>AdminServlet</servlet-name> <display-name>Axis Admin Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AdminServlet </servlet-class> <load-on-startup>100</load-on-startup> </servlet>

 

 

Next, you need to add url mappings for these servlets. At the bottom section of the file, again before the Cocoon mapping, add:

Again you can use only url mappings that you need

 

<!-- Define where the XMLRPC servlet listens -->

  <servlet-mapping>

    <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>

    <url-pattern>/xmlrpc</url-pattern>

  </servlet-mapping>

 

<!-- eXist's DatabaseAdminServlet --> <servlet-mapping> <servlet-name>EXistServlet</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>

 

<servlet-mapping> <servlet-name>WebDAVServlet</servlet-name> <url-pattern>/webdav/*</url-pattern> </servlet-mapping>

 

<!-- XQueryServlet --> <servlet-mapping> <servlet-name>XQueryServlet</servlet-name> <url-pattern>*.xql</url-pattern> </servlet-mapping>

 

<!-- The following servlet-mappings are for Axis (SOAP) --> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/axis-servlet/AxisServlet</url-pattern> </servlet-mapping>

 

<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping>

 

<servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>

 

<servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/axis-servlet/AdminServlet</url-pattern> </servlet-mapping>

 

 

Then edit cocoon/WEB-INF/cocoon.xconf. Change the section that configures the xmldb pseudo protocol. Add the xmldb driver for eXist:

<!-- xmldb pseudo protocol -->

<component-instance 

class="org.apache.cocoon.components.source.impl.XMLDBSourceFactory" 

name="xmldb">

  <!-- Add here other XML:DB compliant databases' drivers -->

  <driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>

</component-instance>

 

This configuration works but from my experience it is better that you also replace org.apache.cocoon.components.source.impl.XMLDBSourceFactory with org.exist.cocoon.XMLDBSourceFactory, since it seems that 

org.apache.cocoon.components.source.impl.XMLDBSourceFactory has some problems with unicode document, but org.exist.cocoon.XMLDBSourceFactory uses eXist’s xmldb source and is taylored to eXist and has no Unicode problem.

 

 

To use eXist's XSP logicsheet, edit the section on markup languages and include a reference to eXist's logicsheet at the top:

 

<markup-languages>

    <xsp-language logger="core.markup.xsp" name="xsp">

      <parameter name="prefix" value="xsp"/>

      <parameter name="uri" value="http://apache.org/xsp"/>

 

<!--+ | Properties for the java language +--> <target-language name="java"> <!-- Defines the XSP Core logicsheet for the Java language --> <parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>

 

<builtin-logicsheet> <parameter name="prefix" value="xdb"/> <parameter name="uri" value="http://exist-db.org/xmldb/1.0"/> <parameter name="href" value="resource://org/exist/xmldb.xsl"/> </builtin-logicsheet> ...

 

You should now be able to copy the contents of eXist's webapp directory ($EXIST_HOME/webapp) into a subdirectory of your Cocoon installation (e.g. cocoon/exist) and access eXist's main page and most examples. However, some examples won't work as they assume a fixed path /exist. The XQuery scripts need to be changed accordingly. 

Also you can use XQuery Generator as Chris said.

 

Regards

Abbas

  _____  

Yahoo! <http://us.rd.yahoo.com/mail_us/taglines/postman3/*http:/us.rd.yahoo.com/evt=39666/*http:/messenger.yahoo.com>  Messenger with Voice. PC-to-Phone calls for ridiculously low rates.


Re: AW: eXist xmldb

Posted by Abbas Mousavi <ab...@yahoo.com>.
  Hi Peter and Chris
   
  I think that I should add something to the chris mail:
     
Mainly - as I know - there is two document for Installing exist with cocoon on tomcat one at Cocoon Wiki and One at eXist Wiki:
   http://wiki.exist-db.org/space/CocoonInstall
http://wiki.apache.org/cocoon/EXistInCocoon?highlight=%28exist%29

   
  I prefer the document at eXist site, as Chris said, the document says that you should copy 
      
  * commons-pool-1.1.jar
      * xmlrpc-1.2-patched.jar
      * xmldb.jar
      * exist.jar
      * exist-optional.jar
   
  and optionaly
      * castor-0.9.5-xml.jar
      * commons-fileupload-1.0.jar
      * isorelax.jar
      * jgroups-all.jar
      * xsdlib.jar
      * msv.jar
   
  from cocoon distribution to cocoon/WEB-INF/lib, (the exact list of required jars depends on your needs.) then you should remove
   
      * xmldb-api-20030701.jar
      * xmldb-common-20030701.jar
      * xmldb-xupdate-20040205.jar
   
  From cocoon/WEB-INF/lib.
   
  Next, copy the central configuration file for exists from $EXIST_HOME/webapp/WEB-INF/conf.xml to cocoon/WEB-INF.
  If you need to use the SOAP service, you should also copy $EXIST_HOME/webapp/WEB-INF/server-config.wsdd to cocoon/WEB-INF.
  In order to move the data in the eXist database, copy the contents of $EXIST_HOME/webapp/WEB-INF/data/ to cocoon/WEB-INF/data/. 
   
  Edit cocoon/WEB-INF/web.xml. At the top, before the Cocoon servlet is configured, add the following lines:
  You can eliminate the servlets that you don’t need them, You may skip the AxisServlet, AdminServlet, WebDAVServlet or RpcServlet (needed if you want to access the database instance from a remote client app), but you definitely need EXistServlet here
   
  <!-- RpcServlet provides XML-RPC access to eXist -->
    <servlet>
      <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
      <servlet-class>org.exist.xmlrpc.RpcServlet</servlet-class>
    </servlet>
   
  <servlet> <servlet-name>WebDAVServlet</servlet-name> <servlet-class>org.exist.http.servlets.WebDAVServlet</servlet-class>
   
  <init-param> <param-name>authentication</param-name> <param-value>basic</param-value> </init-param> </servlet>
   
  <!-- XQueryServlet generates HTML from an XQuery file. --> <servlet> <servlet-name>XQueryServlet</servlet-name> <servlet-class>org.exist.http.servlets.XQueryServlet</servlet-class>
   
  <init-param> <param-name>uri</param-name> <param-value>xmldb:exist:///db</param-value> </init-param>
   
  <init-param> <param-name>form-encoding</param-name> <param-value>UTF-8</param-value> </init-param>
   
  <init-param> <param-name>container-encoding</param-name> <param-value>UTF-8</param-value> </init-param>
   
  <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </servlet>
   
  <servlet> <servlet-name>EXistServlet</servlet-name> <servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>
   
  <!-- where to find eXist's configuration file relative to the basedir of the web-application. --> <init-param> <param-name>configuration</param-name> <param-value>conf.xml</param-value> </init-param>
   
  <!-- eXist's home directory. All file names in the configuration file will be relative to this directory. --> <init-param> <param-name>basedir</param-name> <param-value>WEB-INF/</param-value> </init-param>
   
  <init-param> <param-name>start</param-name> <param-value>true</param-value> </init-param>
   
  <load-on-startup>1</load-on-startup>
   
  </servlet>
   
  <!-- configure the Axis servlets. Axis provides eXist's web-services via SOAP --> <servlet> <servlet-name>AxisServlet</servlet-name> <display-name>Apache-Axis Servlet</display-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet>
   
  <servlet> <servlet-name>AdminServlet</servlet-name> <display-name>Axis Admin Servlet</display-name> <servlet-class> org.apache.axis.transport.http.AdminServlet </servlet-class> <load-on-startup>100</load-on-startup> </servlet>
   
   
  Next, you need to add url mappings for these servlets. At the bottom section of the file, again before the Cocoon mapping, add:
  Again you can use only url mappings that you need
   
  <!-- Define where the XMLRPC servlet listens -->
    <servlet-mapping>
      <servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
      <url-pattern>/xmlrpc</url-pattern>
    </servlet-mapping>
   
  <!-- eXist's DatabaseAdminServlet --> <servlet-mapping> <servlet-name>EXistServlet</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
   
  <servlet-mapping> <servlet-name>WebDAVServlet</servlet-name> <url-pattern>/webdav/*</url-pattern> </servlet-mapping>
   
  <!-- XQueryServlet --> <servlet-mapping> <servlet-name>XQueryServlet</servlet-name> <url-pattern>*.xql</url-pattern> </servlet-mapping>
   
  <!-- The following servlet-mappings are for Axis (SOAP) --> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/axis-servlet/AxisServlet</url-pattern> </servlet-mapping>
   
  <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping>
   
  <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
   
  <servlet-mapping> <servlet-name>AdminServlet</servlet-name> <url-pattern>/axis-servlet/AdminServlet</url-pattern> </servlet-mapping>
   
   
  Then edit cocoon/WEB-INF/cocoon.xconf. Change the section that configures the xmldb pseudo protocol. Add the xmldb driver for eXist:
  <!-- xmldb pseudo protocol -->
  <component-instance 
  class="org.apache.cocoon.components.source.impl.XMLDBSourceFactory" 
  name="xmldb">
    <!-- Add here other XML:DB compliant databases' drivers -->
    <driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>
  </component-instance>
   
  This configuration works but from my experience it is better that you also replace org.apache.cocoon.components.source.impl.XMLDBSourceFactory with org.exist.cocoon.XMLDBSourceFactory, since it seems that 
  org.apache.cocoon.components.source.impl.XMLDBSourceFactory has some problems with unicode document, but org.exist.cocoon.XMLDBSourceFactory uses eXist’s xmldb source and is taylored to eXist and has no Unicode problem.
   
   
  To use eXist's XSP logicsheet, edit the section on markup languages and include a reference to eXist's logicsheet at the top:
   
  <markup-languages>
      <xsp-language logger="core.markup.xsp" name="xsp">
        <parameter name="prefix" value="xsp"/>
        <parameter name="uri" value="http://apache.org/xsp"/>
   
  <!--+ | Properties for the java language +--> <target-language name="java"> <!-- Defines the XSP Core logicsheet for the Java language --> <parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
  
   
  <builtin-logicsheet> <parameter name="prefix" value="xdb"/> <parameter name="uri" value="http://exist-db.org/xmldb/1.0"/> <parameter name="href" value="resource://org/exist/xmldb.xsl"/> </builtin-logicsheet> ...
   
  You should now be able to copy the contents of eXist's webapp directory ($EXIST_HOME/webapp) into a subdirectory of your Cocoon installation (e.g. cocoon/exist) and access eXist's main page and most examples. However, some examples won't work as they assume a fixed path /exist. The XQuery scripts need to be changed accordingly. 
  Also you can use XQuery Generator as Chris said.
   
  Regards
  Abbas
  
		
---------------------------------
Yahoo! Messenger with Voice. PC-to-Phone calls for ridiculously low rates.

AW: eXist xmldb

Posted by Christofer Dutz <du...@c-ware.de>.
Hi Peter

 

Assuming you are using a relatively new version of exist (either the
snapshot or current subversion checkout) and you only want direct access (no
XML-RPC or other fancy network stuff)

Here is what you have to do:

 

Copy the following jars to cocoons WEB-INF/lib directory:

exist/exist.jar

exist/exist-optional.jar

exist/lib/core/antlr.jar

exist/lib/core/commons-pool-1.2.jar

exist/lib/core/xmldb.jar

exist/lib/core/xmlrpc-1.2-patched.jar

 

Add the following to the Generators section of the sitemap:

<map:generator name="xquery" src=" org.exist.cocoon.XQueryGenerator "/>

 

Add the following to your cocoon.xconf: inside the the
org.apache.cocoon.components.source.impl.XMLDBSourceFactory configuration
(there should be a xindice driver configured)

<driver class=" org.exist.xmldb.DatabaseImpl" type="exist"/>

I would recommend removing the unused driver, because I remember cocoon
trying to initialize the driver, but because of a missing Xindice cocoon
gets an error and skips the following drivers.

This should result in the xmldb:exist pseudo protocol being accessible. 

 

To start the server, add the following to the cocoon.xconf:

<component role=" org.exist.server"
class="de.cware.cweb.system.xmldb.XmlDbServerImpl" home="C:/home/domains"
suffix="data/xmldb" minBrokers="1" maxBrokers="5"/>

Well I have to admit, that I created my own Server component for starting
the db itself inside cocoon . think you will have to have a look for code
looking like:

BrokerPool.configure("exist", minBrokers, maxBrokers, config);

 

This is where initializing the BorkerPool for the instance is initialted.
Couldn't fin exactly which class is needed for this.

If you don't manage to find it, I can send you mine, but that is made for
initializing multiple Database Instances automatically (one per virtual
hosts) but It would be suitable for a start :-)

 

Last not least, you have to place the exist config.file in the
WEB-INF/classes directory, so it can be found by the Configuration . think
you can place it in WEB-INF/ directly, but I always use the classpath access
path.

 

Hope this helps you and I didn't miss anything (not using the original DB
server and Drivers anymore)

 

Regards, 

    Chris

 

  _____  

Von: Peter Sparkes [mailto:peter@didm.co.uk] 
Gesendet: Dienstag, 6. Juni 2006 18:50
An: users@cocoon.apache.org
Betreff: eXist xmldb

 

Hi

I am trying to install the eXist xmldb into cocoon 2.1.9 running under
tomcat 5.5, please:

1. Where can I find  the best documentation  on how to install eXist xmldb
into cocoon. There are several such docs on the web but all the ones I have
found are old and they mention eXist jars which are not in the latest eXist
distribution.

2. Where can I find documentation on the "xmldb:// pseudo-protocol" other
than the apidocs and hoe to use it

Thanks

Peter Sparkes