2013-04-26 7 views
7

में solrcore.properties से गुणों का उपयोग करना हम सौर 3.6.2 से सोलर 4.2.1 में अपग्रेड करने का प्रयास कर रहे हैं और डेटा- में solrcore.properties में गुणों का उपयोग करने में समस्याएं हैं। config.xml।डेटा-config.xml (solr 4.2.1)

Solr 3.6.2 के साथ, हम सीधे solrcore.properties में गुणों का उपयोग करने के लिए की तरह डेटा-config.xml अंदर कर पाए:

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

अब इन गुणों नहीं पाए जाते हैं, तो यह फेंकता है जब मैं dataimport आह्वान इस अपवाद:

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 

मैं मुश्किल कोड डेटा-config.xml में गुण है, तो आयात ठीक काम करता है।

दोनों डेटा-config.xml और solrcore.properties dir project_name/solr/app-cores/core_name/conf

फिर here से संकेत लिया और इस तरह Solr-config.xml में डेटा आयात अनुरोध हैंडलर में गुण को विन्यस्त करने की कोशिश की तहत कर रहे हैं:

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

और {dataimport.jdbcDriver} और {dataimport.request.jdbcDriver} लेकिन उन्हीं अपवाद फेंक रहे हैं जैसे डेटा-config.xml में उन्हें इस्तेमाल!

इसे कैसे ठीक करें?

+0

मुझे एक बहुत ही समस्या थी और यह चाल थी! आप अपने प्रश्न का उत्तर क्यों नहीं देते हैं, हालांकि (यह देखते हुए कि आपने पहले से ही ऐसा कैसे किया है)? – Aubergine

उत्तर

2

अनुरोध हैंडलर दृष्टिकोण के साथ ${dataimporter.request.jdbcDriver} का उपयोग करना!

+0

पैरामीटर में एक डॉट नहीं होना चाहिए। उदाहरण के लिए, '$ {dataimporter.request.db.username} 'काम नहीं करेगा। – Risadinha