ERROR ... SolrDataImportProperties Error loading DataImportScheduler properties java.lang.NullPointerException at sun.nio.fs.UnixPath.normalizeAndCheck(UnixPath.java:77) at org.apache.solr.core.SolrResourceLoader.<init>(SolrResourceLoader.java:151) at org.apache.solr.handler.dataimport.scheduler.SolrDataImportProperties.loadProperties(SolrDataImportProperties.java:36) at org.apache.solr.handler.dataimport.scheduler.BaseTimerTask.<init>(BaseTimerTask.java:39) at org.apache.solr.handler.dataimport.scheduler.DeltaImportHTTPPostScheduler.<init>(DeltaImportHTTPPostScheduler.java:20) at org.apache.solr.handler.dataimport.scheduler.ApplicationListener.contextInitialized(ApplicationListener.java:47) ...
apache-solr-dataimportscheduler-1.1.jar 實現定時導入SolrDataImportProperties.loadProperties() 第 36 行:new SolrResourceLoader(null) 傳入 null 實例目錄SolrResourceLoader 構造器要求 Path instanceDir 非空,否則拋 NPE// 修正 SolrDataImportProperties.loadProperties()
public void loadProperties(boolean force) {
try {
// 獲取真實 Solr Home 路徑,而非傳 null
Path solrHome = Paths.get(System.getProperty("solr.solr.home", "solr"));
SolrResourceLoader loader = new SolrResourceLoader(solrHome);
String configDir = loader.getConfigDir();
configDir = SolrResourceLoader.normalizeDir(configDir);
// ... 後續邏輯保持不變
} catch (Exception e) {
log.error("Load scheduler properties failed", e);
}
}
修復後源碼與 JAR:solr-dataimportscheduler-1.1-source.zip
DataImportHandler + 系統定時任務,減少第三方依賴