|
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:[EMAIL PROTECTED] Hi Peter and Chris I think that I should add something to the chris mail: 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. |
- Re: AW: eXist xmldb Peter Sparkes
- Re: AW: eXist xmldb Abbas Mousavi
- AW: AW: eXist xmldb Christofer Dutz
- Re: AW: AW: eXist xmldb Peter Sparkes
