Using properties from solrcore.properties in data-config.xml (Solr 4.2.1)

We are trying to migrate from Solr 3.6.2 to Solr 4.2.1 and are having problems using the properties in the solrcore.properties file in the-config.xml file.

With Solr 3.6.2, we were able to directly use the properties in the solrcore.properties file inside data-config.xml, for example:

<dataSource driver="${jdbc.driver}" url="jdbc:mysql://${jdbc.host}:${jdbc.port}/${db.name}" user="${jdbc.username}" password="${jdbc.password}" batchSize="-1" /> 

Now these properties are not found, so when I call dataimport, it throws this exception:

 Apr 26, 2013 11:10:58 AM org.apache.solr.common.SolrException log SEVERE: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Could not load driver: Processing Document # 1 at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:266) at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:422) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:487) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:468) Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Could not load driver: Processing Document # 1 at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:406) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:319) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:227) ... 3 more Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Could not load driver: Processing Document # 1 at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71) at org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:114) at org.apache.solr.handler.dataimport.JdbcDataSource.init(JdbcDataSource.java:62) at org.apache.solr.handler.dataimport.DataImporter.getDataSourceInstance(DataImporter.java:394) at org.apache.solr.handler.dataimport.ContextImpl.getDataSource(ContextImpl.java:99) at org.apache.solr.handler.dataimport.SqlEntityProcessor.init(SqlEntityProcessor.java:53) at org.apache.solr.handler.dataimport.EntityProcessorWrapper.init(EntityProcessorWrapper.java:74) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:423) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:404) ... 5 more Caused by: java.lang.ClassNotFoundException: Unable to load or org.apache.solr.handler.dataimport. at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:911) at org.apache.solr.handler.dataimport.JdbcDataSource.createConnectionFactory(JdbcDataSource.java:112) ... 12 more Caused by: org.apache.solr.common.SolrException: Error loading class '' at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:440) at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:901) ... 13 more Caused by: java.lang.ClassNotFoundException: at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:424) ... 14 more 

If I hardcode the properties in data-config.xml, then the import will work fine.

Both data files-config.xml and solrcore.properties are located under the directory project_name/solr/app-cores/core_name/conf

Then a hint appeared from here and tried to configure the properties in the data import request handler in the solr-config.xml file as follows:

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> <str name="jdbcDriver">${jdbc.driver}</str> <str name="jdbcHost">${jdbc.host}</str> <str name="jdbcPort">${jdbc.port}</str> <str name="jdbcUsername">${jdbc.username}</str> <str name="jdbcPassword">${jdbc.password}</str> </lst> </requestHandler> 

and use them in data-config.xml, for example {dataimport.jdbcDriver} and {dataimport.request.jdbcDriver} , but they throw the same exception!

How to fix it?

+7
source share
1 answer

Using ${dataimporter.request.jdbcDriver} when working with the request handler!

+2
source

All Articles