Hi All,

I'm hoping this is a reasonably trivial issue, but it's frustrating me to no
end. I'm putting together a tiny command line app to write data into an
index. It has no web based Solr running against it; the index will be moved
at a later time to have a proper server instance start for responding to
queries. My problem however is I seem to have stalled on instantiating the
embedded server:

    private SolrServer startSolr(String home) throws Exception {
        try {
            System.setProperty("solr.solr.home", home);
            CoreContainer.Initializer initializer = new
CoreContainer.Initializer();
            solrCore = initializer.initialize();
            return new EmbeddedSolrServer(solrCore, "");
        } catch(Exception ex) {
            log.error("\n=======\nFailed to start Solr server\n");
            throw ex;
        }
    }

The constructor for the embedded server just never comes back. I've seen
three or four different ways of starting the server with varying levels of
complexity, and they all APPEAR to work, but still do not return. STDOUT
show the output I have largely come to expect from watching Solr start
'correctly':

=======
Starting Solr:

JNDI not configured for solr (NoInitialContextEx)
using system property solr.solr.home: C:\test\harvester\solr
looking for solr.xml: C:\test\harvester\solr\solr.xml
Solr home set to 'C:\test\harvester\solr\'
Loaded SolrConfig: solrconfig.xml
Opening new SolrCore at C:\test\harvester\solr\,
dataDir=C:\tf2\geonames\harvester\solr\.\data\
Reading Solr Schema
Schema name=test
created string: org.apache.solr.schema.StrField
created date: org.apache.solr.schema.TrieDateField
created sint: org.apache.solr.schema.SortableIntField
created sfloat: org.apache.solr.schema.SortableFloatField
created null: org.apache.solr.analysis.WhitespaceTokenizerFactory
created null: org.apache.solr.analysis.LowerCaseFilterFactory
created null: org.apache.solr.analysis.WhitespaceTokenizerFactory
created null: org.apache.solr.analysis.LowerCaseFilterFactory
created text: org.apache.solr.schema.TextField
default search field is basic_name
query parser default operator is AND
unique key field: id
No JMX servers found, not exposing Solr information with JMX.
created /update: solr.XmlUpdateRequestHandler
adding lazy requestHandler: solr.CSVRequestHandler
created /update/csv: solr.CSVRequestHandler
Opening Searcher@11b86c7 main
AutoCommit: disabled
registering core:
[] Registered new searcher Searcher@11b86c7 main
Terminate batch job (Y/N)? y


At this stage I'm grasping at straws. It appears as though the embedded
instance is behaving like a proper server, waiting for a request or
something. I've scrubbed the solrconfig.xml (from from the Solr example
download) file back to remove most entries, but perhaps I'm using the
incorrect handlers/listeners for an embedded server?

I'm a tad confused though, because every other time I've done this
(admittedly in a servlet, not a command line app) the constructor simply
returns straight away and execution of my app code continues.

Any advice or suggestions would be greatly appreciated.

Ta,
Greg

Reply via email to