覆盖getSchemaFile和getSolrConfigFile

时间:2013-03-13 17:59:45

标签: maven solr override solrj solr4

我正在将我的Solr测试项目迁移到Solr 4.1,我无法覆盖方法getSchemaFile()和getSolrConfigFile()。

我收到以下错误:

  

[错误] my_path / SolrConfigTest.java:[63,15]错误:SolrConfigTest中的getSchemaFile()无法覆盖SolrTestCaseJ4中的getSchemaFile()

     

[ERROR]重写方法是静态的

     

[错误] my_path / SolrConfigTest.java:[62,1]错误:方法不会覆盖或实现超类型的方法

     

[错误] my_path / SolrConfigTest.java:[68,15]错误:SolrConfigTest中的getSolrConfigFile()无法覆盖SolrTestCaseJ4中的getSolrConfigFile()

     

[ERROR]重写方法是静态的

     

[错误] my_path / SolrConfigTest.java:[67,1]错误:方法不会覆盖或实现超类型的方法

该文件如下所示:

import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.ContentStreamUpdateRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.util.AbstractSolrTestCase;

public class SolrConfigTest extends AbstractSolrTestCase {
    String container = "mycore";

    @Override
    public String getSolrHome() {
        return System.getProperty("user.dir") + "/resources/";
    }

    @Override
    public String getSchemaFile() {
        return getSolrHome() + container + "/conf/schema.xml";
    }

    @Override
    public String getSolrConfigFile() {
        return getSolrHome() + container + "/conf/solrconfig.xml";
    }

    @Before
    @Override
    public void setUp() throws Exception {
        super.setUp();
        CoreContainer.Initializer initializer = new CoreContainer.Initializer();
        coreContainer = initializer.initialize();
        server = new EmbeddedSolrServer(coreContainer, "mycore");
    }
}

对于maven,我的pom.xml文件具有以下依赖项:

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-core</artifactId>
        <version>4.1.0</version>
    </dependency>
    <dependency>
       <groupId>org.apache.solr</groupId>
       <artifactId>solr-solrj</artifactId>
       <version>4.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-test-framework</artifactId>
        <version>4.1.0</version>
    </dependency>
</dependencies>

有人知道我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

据我所知,Solr 4.1的AbstractSolrTestCase类不再提供getSchemaFile()和getSolrConfigFile()方法来覆盖。

一旦getSolrHome()指向定义了Solr的文件夹(您可以在其中找到solr.xml文件),schema.xml和solrconfig.xml文件将在mycore / conf中找到。

答案 1 :(得分:-1)

或者您可以覆盖SolrTestCaseJ4类的initCore(String config,String schema,String solrHome)方法,以便您可以根据您的配置设置配置文件和模式文件。