2013-04-26 5 views
7

Solr 3.6.2からSolr 4.2.1にアップグレードしようとしていますが、データベース環境でsolrcore.propertiesのプロパティを使用する際に問題があります。 config.xml。私はdataimport起動するときに、それは投げ、今、これらのプロパティが見つからないdata-config.xml(solr 4.2.1)のsolrcore.propertiesからプロパティを使用

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

は、Solrの3.6.2で、我々は直接のようなデータ-config.xmlの内側solrcore.propertiesでプロパティを使用することができましたこの例外:

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 

data-config.xmlでプロパティをハードコードすると、正常にインポートされます。

データ-config.xmlのとsolrcore.propertiesの両方が続いhereからヒントを取り、このようなSolrの-config.xmlでのデータインポート要求ハンドラのプロパティを設定しようとした project_name/solr/app-cores/core_name/conf

dirの下にある:

<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

関連する問題