Re: Problem to Xquery a document from xindice collection

Todd Byrne <[email protected]>
Newsgroups gmane.text.xml.xindice.user
Message-ID <[email protected]>
First "//Message/from/Address[name='dariusjbos']" you have an extra
slash before the '[' second why do the //Message when you know the
structure of the document?

Todd

johan bos wrote:
> 
> Hello Everyone,
> 
> Here my problem,
> I can connect and create a collection (mail)  in xindice 1.1 (from
> within my
> servlet (tomcat 5))
> I can add document to this collection (the ugly browser let me see them)
> 
> but when i try to make a query using the example function for quering
> xindice, i got an error such as below: (some of the message are from my
> debug)
> 
> 
> trying to register database
> Database xmldb:xindice://localhost:8080/db is connected
> Collection xmldb:xindice://localhost:8080/db is connected
> Collection mail already created
> org.xmldb.api.base.XMLDBException: org.apache.xmlrpc.XmlRpcException:
> Error
> Compiling XPath Expression: Une étape d'emplacement était attendue après
> le
> jeton ''/'' ou ''//''.
>     at
> org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.runRemoteCommand(CollectionImpl.java:119)
> 
>     at
> org.apache.xindice.client.xmldb.xmlrpc.CollectionImpl.query(CollectionImpl.java:515)
> 
>     at
> org.apache.xindice.client.xmldb.XindiceCollection.query(XindiceCollection.java:259)
> 
>     at
> org.apache.xindice.client.xmldb.services.QueryService.query(QueryService.java:90)
> 
>     at jmms.MessageDB.queryCollection(MessageDB.java:163)
>     at jmms.JMMSServlet.doMessageToDB(JMMSServlet.java:1009)
>     at jmms.JMMSServlet.doPost(JMMSServlet.java:342)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> 
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> 
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> 
>     at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>     at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
>     at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> 
>     at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> 
>     at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> 
>     at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 
>     at java.lang.Thread.run(Unknown Source)
> Query /mail/Message/from/Address/[name='dariusjbos'] return an error
> XML:DB Exception occured 1 org.apache.xmlrpc.XmlRpcException: Error
> Compiling XPath Expression: Une étape d'emplacement était attendue après
> le
> jeton ''/'' ou ''//''.
> 
> the xml document i try to query look like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <Message xmlns="URN:ietf:params:email-xml:"
> rfc822="URN:ietf:params:rfc822:">
>    <date>Mon Aug 15 19:03:47 CEST 2005</date>
>    <from>
>        <Address>
>            <adrs>mailto:[email protected]</adrs>
>            <name>dariusjbos</name>
>        </Address>
>    </from>
> </Message>
> //Message/from/Address/[name='dariusjbos']
> find after the function i use to query the mail collection under db:
> 
> public static void queryCollection()throws Exception {
>        Collection col = null;
>        try {
>           String driver =
> "org.apache.xindice.client.xmldb.DatabaseImpl";
>           Class c = Class.forName(driver);
> 
>           Database database = (Database) c.newInstance();
>           DatabaseManager.registerDatabase(database);
> 
>           col =
> DatabaseManager.getCollection("xmldb:xindice://localhost:8080/db/mail");
> 
>           String xpath = "//Message/from/Address/[name='dariusjbos']";
>           XPathQueryService service =
>              (XPathQueryService) col.getService("XPathQueryService",
> "1.0");
>           ResourceSet resultSet = service.query(xpath);
>           ResourceIterator results = resultSet.getIterator();
>           while (results.hasMoreResources()) {
>              Resource res = results.nextResource();
>              System.out.println((String) res.getContent());
>           }
>        }
>        catch (XMLDBException e) {
>           System.err.println("XML:DB Exception occurred " + e.errorCode
> +
> "" + e.getMessage());
>        }
>        finally {
>           if (col != null) {
>              col.close();
>           }
>        }
> }
> 
> please I really need to pass this problem (deadline in 3 days)
> 
> thanks in advance
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.