Próbujemy dokonać aktualizacji z Solr 3.6.2 do Solr 4.2.1 i mamy problemy z używaniem właściwości w pliku solrcore.properties w danych- config.xml.Używanie właściwości z pliku solrcore.properties w data-config.xml (Solr 4.2.1)
Z Solr 3.6.2, byliśmy w stanie bezpośrednio wykorzystać właściwości w solrcore.properties wewnątrz data-config.xml jak:
<dataSource driver="${jdbc.driver}"
url="jdbc:mysql://${jdbc.host}:${jdbc.port}/${db.name}"
user="${jdbc.username}"
password="${jdbc.password}"
batchSize="-1" />
Teraz te właściwości nie zostaną znalezione, więc kiedy powoływać dataimport rzuca ten wyjątek:
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
Jeśli twarde kodowanie właściwości w data-config.xml, import działa dobrze.
Zarówno data-config.xml i solrcore.properties są pod reż project_name/solr/app-cores/core_name/conf
wziął wskazówkę od here i próbował konfigurowanie właściwości w żądaniu obsługi importu danych w solr-config.xml tak:
<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>
i wykorzystywać je w data-config.xml jak {dataimport.jdbcDriver}
i {dataimport.request.jdbcDriver}
ale te są rzuca ten sam wyjątek!
Jak to naprawić?
Miałem bardzo podobny problem i to załatwiło sprawę! Dlaczego jednak nie odpowiesz na własne pytanie (widząc, jak już to zrobiłeś)? – Aubergine