Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaConfig的Spring数据解决方案存储库_Java_Spring_Maven_Solr - Fatal编程技术网

使用JavaConfig的Spring数据解决方案存储库

使用JavaConfig的Spring数据解决方案存储库,java,spring,maven,solr,Java,Spring,Maven,Solr,我正在尝试创建一个使用solr存储库的SpringBoot应用程序。我将遵循本教程: 这表示使用以下类配置我的应用程序(示例43): 问题是如果我这样做,它就不会将getSolrServer()识别为factory的方法。事实上,如果您查看forEmbeddedSolrServerFactory,您不会发现该方法,但它显然存在于同一类的 可能由于某种原因,它被从getSolrServer重命名为getSolrClient,从一个版本更名为另一个版本 以下是我在pom.xml中的依赖项 <

我正在尝试创建一个使用solr存储库的SpringBoot应用程序。我将遵循本教程:

这表示使用以下类配置我的应用程序(示例43):

问题是如果我这样做,它就不会将
getSolrServer()
识别为
factory
的方法。事实上,如果您查看for
EmbeddedSolrServerFactory
,您不会发现该方法,但它显然存在于同一类的

可能由于某种原因,它被从
getSolrServer
重命名为
getSolrClient
,从一个版本更名为另一个版本

以下是我在pom.xml中的依赖项

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-solr</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

org.springframework.boot
弹簧启动启动器数据解决方案
org.springframework.boot
弹簧起动试验
测试
无论如何,我尝试将
getSolrServer
更改为
getSolrClient
,但是返回类型,即
SolrClient
,现在不兼容。如果我试图返回
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer
,它会给我一个错误,因为它找不到
org.apache.solr.client.solrj.embedded


使用这种方法的另一个问题是,
SolrTemplate
不需要
EmbeddedSolrServer
,因此这不是一个好的选择…

我使用的是eclipse而不是spring suite,假设spring suite使用的是最新版本的
spring boot starter数据solr(1.4.2)
您需要在pom中为solr core 5.x添加一个条目

由于
EmbeddedSolrServer
正在扩展
SolrClient
,因此遵循Java
is-A
关系,它应该与SolrClient兼容。此二进制文件是solr core的一部分

您的代码需要使用
getSolrClient
本身,并且应该与
SolrClient

pom.xml中的依赖项如下

在这里,我们使用我们的代码库,没有任何错误


我使用的是eclipse而不是spring套件,假设spring套件使用的是最新版本的
spring boot starter data solr(1.4.2)
,您需要在pom中为
solr core 5.x
添加一个条目

由于
EmbeddedSolrServer
正在扩展
SolrClient
,因此遵循Java
is-A
关系,它应该与SolrClient兼容。此二进制文件是solr core的一部分

您的代码需要使用
getSolrClient
本身,并且应该与
SolrClient

pom.xml中的依赖项如下

在这里,我们使用我们的代码库,没有任何错误


不要创建SolrClient bean,而是创建EmbeddedSolrServerFactoryBean对象,并将该对象传递给solr模板以创建SolrTemplate对象。这是我的配置文件:

@Configuration
@EnableSolrRepositories(basePackages = "com.ida.*.repository")
@Profile("dev")
public class SolrConfigDev {
    @Autowired
    private Environment environment;

    @Bean
    public EmbeddedSolrServerFactoryBean solrServerFactoryBean() {
        EmbeddedSolrServerFactoryBean factory = new EmbeddedSolrServerFactoryBean();

        factory.setSolrHome(environment.getRequiredProperty("solr.solr.home"));

        return factory;
    }

    @Bean
    public SolrTemplate solrTemplate() throws Exception {
        return new SolrTemplate(solrServerFactoryBean().getObject());
    }
}
此外,还必须将solr core添加到pom.xml文件中

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

org.apache.solr

在Petri Kainulainen的博客中。

不要创建SolrClient bean,而是创建EmbeddedSolrServerFactoryBean对象,并将该对象传递给solr模板以创建SolrTemplate对象。这是我的配置文件:

@Configuration
@EnableSolrRepositories(basePackages = "com.ida.*.repository")
@Profile("dev")
public class SolrConfigDev {
    @Autowired
    private Environment environment;

    @Bean
    public EmbeddedSolrServerFactoryBean solrServerFactoryBean() {
        EmbeddedSolrServerFactoryBean factory = new EmbeddedSolrServerFactoryBean();

        factory.setSolrHome(environment.getRequiredProperty("solr.solr.home"));

        return factory;
    }

    @Bean
    public SolrTemplate solrTemplate() throws Exception {
        return new SolrTemplate(solrServerFactoryBean().getObject());
    }
}
此外,还必须将solr core添加到pom.xml文件中

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

org.apache.solr

在Petri Kainulainen的博客中。

pom中“spring boot starter data solr”的版本是什么。@Shivakumars没有指定版本,所以我猜它采用最新版本。pom中“spring boot starter data solr”的版本是什么。@Shivakumars没有指定版本,所以我猜它采用最新版本。只是用pom.xml条目编辑了我的答案。你能试试吗。现在,通过使用你建议的版本,我有了方法
getSolrServer
,但它给了我一个错误,因为
SolrTemplate
不需要
SolrClient
。我只是用代码片段编辑了我的答案。请检查。对于您的配置,我没有方法
getSolrClient
,只有
getSolrServer
。如果您有spring data solr的依赖项,请将其删除。确保您只有答案中提到的依赖项。只需使用pom.xml条目编辑我的答案。你能试试吗。现在,通过使用你建议的版本,我有了方法
getSolrServer
,但它给了我一个错误,因为
SolrTemplate
不需要
SolrClient
。我只是用代码片段编辑了我的答案。请检查。对于您的配置,我没有方法
getSolrClient
,只有
getSolrServer
。如果您有spring data solr的依赖项,请将其删除。请确保您只有答案中提到的依赖项。