Chúng tôi đang cố gắng nâng cấp từ Solr 3.6.2 lên Solr 4.2.1 và gặp sự cố khi sử dụng các thuộc tính trong solrcore.properties trong dữ liệu- config.xml.Sử dụng các thuộc tính từ solrcore.properties trong data-config.xml (Solr 4.2.1)
Với Solr 3.6.2, chúng tôi đã có thể trực tiếp sử dụng tài sản trong solrcore.properties bên trong dữ liệu-config.xml như:
<dataSource driver="${jdbc.driver}"
url="jdbc:mysql://${jdbc.host}:${jdbc.port}/${db.name}"
user="${jdbc.username}"
password="${jdbc.password}"
batchSize="-1" />
Bây giờ các đặc tính này không được tìm thấy, vì vậy khi tôi gọi dataimport nó ném ngoại lệ này:
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
Nếu tôi mã cứng các thuộc tính trong data-config.xml thì quá trình nhập sẽ hoạt động tốt.
Cả hai dữ liệu config.xml và solrcore.properties dưới dir project_name/solr/app-cores/core_name/conf
Sau đó mất gợi ý từ here và cố gắng cấu hình các thuộc tính trong xử lý yêu cầu nhập dữ liệu trong Solr-config.xml như thế này:
<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>
và sử dụng chúng trong data-config.xml như {dataimport.jdbcDriver}
và {dataimport.request.jdbcDriver}
nhưng chúng cũng có cùng ngoại lệ!
Cách sửa lỗi này?
Tôi gặp phải sự cố rất giống và điều này đã xảy ra! Tại sao bạn không trả lời câu hỏi của riêng bạn, mặc dù (nhìn thấy cách bạn đã làm điều đó rồi)? – Aubergine