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>
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