org.apache.solr.client.solrj.embedded.EmbeddedSolrServer 的类文件未找到

Posted

技术标签:

【中文标题】org.apache.solr.client.solrj.embedded.EmbeddedSolrServer 的类文件未找到【英文标题】:class file for org.apache.solr.client.solrj.embedded.EmbeddedSolrServer not found 【发布时间】:2013-12-02 20:39:01 【问题描述】:

我想在我现有的 Web 应用程序中设置一个嵌入式 Solr 服务器。但是我在创建 bean 方面已经失败了:

[ERROR] /home/danny/workspace/example/src/main/java/com/example/config/MainConfig.java:[76,45] cannot access org.apache.solr.client.solrj.embedded.EmbeddedSolrServer
  class file for org.apache.solr.client.solrj.embedded.EmbeddedSolrServer not found

这是我的 maven 依赖项(我想使用注释部分 here 中提到的嵌入式服务器版本):

<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-solr</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

这是我的配置类(它的必要部分):

@Configuration
@ComponentScan(basePackages = "com.example", excludeFilters =  @ComponentScan.Filter(Configuration.class) )
@EnableSolrRepositories
public class MainConfig 
    @Bean
    public SolrServer solrServer() 
        EmbeddedSolrServerFactory factory = new EmbeddedSolrServerFactory("classpath:com/example/solr");
        return factory.getSolrServer(); // Eclipse tells: The type org.apache.solr.client.solrj.embedded.EmbeddedSolrServer cannot be resolved. It is indirectly referenced from required .class files
    

    @Bean
    public SolrOperations solrTemplate() 
        return new SolrTemplate(solrServer());
    

【问题讨论】:

【参考方案1】:

您缺少 solr 依赖项本身

<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-core</artifactId>
    <version>THE_VERSION_YOU_WANT_TO_USE</version>
</dependency>

【讨论】:

引用令人困惑。它requires Apache Solr 3.5 and above or optional dependencyIf you tend to use the Embedded Version of Solr Server 4.x you will also have to [...]。这就是为什么我认为不需要 solr 依赖本身。

以上是关于org.apache.solr.client.solrj.embedded.EmbeddedSolrServer 的类文件未找到的主要内容,如果未能解决你的问题,请参考以下文章