Andre Cavalcante wrote:
Help me, please!
When initiating a Servlet I try to make access to the Xindice, in the init() method of Servlet
In log it appears:
2004-07-07 14:55:30,343: nuteli.esquilo.dao.XMLDBServices [DEBUG]: getCollection
2004-07-07 14:55:30,515: xindice.client.xmldb.xmlrpc.DatabaseImpl
[DEBUG]: Using SAX Driver: 'xerces'
2004-07-07 14:55:30,515: xindice.client.xmldb.xmlrpc.DatabaseImpl
[DEBUG]: Using Service Location: '/xindice/'
2004-07-07 14:55:30,515: xindice.client.xmldb.xmlrpc.DatabaseImpl
[DEBUG]: Using URI: 'http://localhost:8080/xindice/'
In stdout.log it appears:
trying to register database
XMLDBService is the class that makes access to the Xindice.
The problem: The Tomcat wait starting of the Servlet, but it not start... and Tomcat service stay hold
If I use XMLDBService not in the init() of Servlet itīs works perfectly.
Somebody knows what it can be occurring?
Do you have xindice and your application in the same Tomcat? IIRC, Tomcat won't start responding on port 8080 till the server is completely started - meaning, it first start all web applications, and then will start accepting requests on port 8080.
Now, if you try to access port 8080 during server startup, you got a deadlock.
You can do one of the following:
(a) Deploy xindice (XindiceServlet) together with your web app, do not deploy Xindice separately. This will allow you to use embed protocol - it will be faster and won't need communication over socket.
(b) Don't access xindice from init of your servlet
(c) Don't load your servlet on startup, then init will be called later on, on first request.
Vadim