java - 未定义 [com.gemstone.gemfire.cache.GemFireCache] 类型的唯一 bean : expected single bean but found 2

标签 java spring gemfire spring-data-gemfire

我正在尝试配置 java gemfire 模板来查询 Spring 应用程序中的数据。
要创建 Spring 模板,我需要创建客户端区域,要创建客户端区域,我需要创建客户端缓存,要创建客户端缓存,我需要创建池。
池参数之一是 server-group。我需要 gemfire 模板来查询其中的几个。
我没有发现池可以为多个服务器组进行配置,因此我创建了两个池(具有不同的服务器组)、两个客户端缓存、两个客户端区域和两个模板,但出现错误。

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.gemstone.gemfire.cache.GemFireCache] is defined: expected single bean but found

我缺少什么?如何修复错误或设法为多个服务器组设置客户端区域?

这是 spring 上下文:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:gfe="http://www.springframework.org/schema/gemfire"
    xmlns:util="http://www.springframework.org/schema/util" 
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/data/gemfire http://www.springframework.org/schema/data/gemfire/spring-data-gemfire.xsd">

    <gfe:pool id="mdfClientDataPool" subscription-enabled="true" server-group="clientData">
        <gfe:locator host="${gemfire.locator.primary.1}" port="${gemfire.locator.primary.port.1}" />
    </gfe:pool>
    <gfe:client-cache id="mdfClientDataCache" pool-name="mdfClientDataPool" properties-ref="gemfireProperties" />
    <gfe:client-region id="mdfClientDataRegion" cache-ref="mdfClientDataCache" />
    <bean id="mdfClientDataTemplate" class="org.springframework.data.gemfire.GemfireTemplate" p:region-ref="mdfClientDataRegion" />

    <gfe:pool id="mdfInstrumentDataPool" subscription-enabled="true" server-group="instrumentData">
        <gfe:locator host="${gemfire.locator.primary.1}" port="${gemfire.locator.primary.port.1}" />
    </gfe:pool>
    <gfe:client-cache id="mdfInstrumentCache" pool-name="mdfInstrumentDataPool" properties-ref="gemfireProperties" />
    <gfe:client-region id="mdfInstrumentRegion" cache-ref="mdfInstrumentCache" />
    <bean id="mdfInstrumentTemplate" class="org.springframework.data.gemfire.GemfireTemplate" p:region-ref="mdfInstrumentRegion" />

</beans>

谢谢。

最佳答案

池中有一个服务器组属性。您应该能够创建多个客户端区域,每个区域都有自己的池和一个客户端缓存。缓存实例只能有一个。

关于java - 未定义 [com.gemstone.gemfire.cache.GemFireCache] 类型的唯一 bean : expected single bean but found 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22383308/

相关文章:

java - 调用 doPost() 中的方法而不减慢结果页面的速度

java - 如何编写一个正则表达式捕获组,它在分隔符之前匹配一个字符 3 次或 4 次?

spring - 使用Spring-Retry时是否需要@Recovery方法?

java - 通过 API 而不是使用 GFSH 创建 Gemfire 区域

java - 无法通过代理建立隧道。代理通过 https 返回 “HTTP/1.1 407”

java - JAXB 问题 -- 类......在此上下文中,其任何父类(super class)均未知

java - 以编程方式将 DirectChannelMetrics 注册为 JMX Bean

java - RestAssured 连接被拒绝 - 未使用 Spring

java - 使用 ServerLauncher 后无法在 Gemfire 9 中启动脉冲

java - 从 Oracle 表加载和更新 Gemfire 缓存