xmltomcatsolrlucenexinclude

solrException. XML parser doesn't support XInclude option


After configuring solr4.7.2 with tomcat 7, got the error in solrAdmin page stating

SolrCore Initialization Failures

fran92:org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: XML parser doesn't support XInclude option

My solr.xml file contains one core

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
  <cores host="${host:}" adminPath="/admin/cores" hostContext="${hostContext:solr}">
    <core config="solrconfig.xml" name="fran92" instanceDir="generic" schema="schema.xml" dataDir="data"/>
</cores>
</solr>

and solrConfig.xml does not include any xInclude tag to include external xml.

what to do next to remove this error. ???


Solution

  • This can be triggered by other configuration options than solr.xml and solrconfig.xml - the exact error message seems to be produced by the Currency field, which require XInclude to load its list of currencies.

    While I'm not sure about the exact reason for this, my guess is that Tomcat bundles a different provider for the javax.xml.* classes, which doesn't support the XInclude statement. I'd try to swap it out with a recent version of Xerces or use the bundled application container for Solr (and since Solr is separating itself from the application container now, run Solr in stand alone mode).