ClassNotFoundException:org.apache.solr.client.solrj.embedded.EmbeddedSolrServer

时间:2017-07-28 23:16:54

标签: java spring spring-boot solr spring-data-solr

我正在使用具有以下依赖关系的Spring Boot:

compile group: 'org.springframework.data', 
name: 'spring-data-solr', 
version: '2.1.6.RELEASE' 

对于开发和测试,我想使用EmbeddedSolrServer。为此,我有以下代码。

@Bean
public EmbeddedSolrServerFactoryBean solrServerFactoryBean() {
    EmbeddedSolrServerFactoryBean factory = new EmbeddedSolrServerFactoryBean();
    factory.setSolrHome(env.getRequiredProperty(PROPERTY_NAME_SOLR_SOLR_HOME));
    return factory;
}

@Bean
public SolrTemplate solrTemplate() throws Exception {

    return new SolrTemplate(solrServerFactoryBean().getSolrClient(""));
}

当我运行我的代码时,我遇到了以下错误。

Caused by: java.lang.ClassNotFoundException: org.apache.solr.client.solrj.embedded.EmbeddedSolrServer

我决定进行检查,我发现无法找到以下软件包,当我检查EmbeddedSolrServerFactory源代码时,Intellij将“嵌入式”和“核心”部分突出显示为红色。

import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
import org.apache.solr.core.CoreContainer;

为了解决这个问题,我尝试将此依赖项添加到我的Gradle设置中,但无济于事。

    compile group: 'org.apache.solr', name: 'solr-solrj', version: '5.5.2'

几乎就像从地图上擦除了EmbeddedSolrServer一样。有谁知道我可以在哪里获得该类,或者为什么我的Spring Boot Solr设置不会自动导入它?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

似乎Solr版本Spring Boot使用的是错误的。您可以使用以下命令在pom中手动设置:

<properties>
    <solr.version>5.5.2</solr.version>
</properties>

希望这能解决你的问题。