Caused by: org.springframework.beans.factory.BeanInitializationException: Cannot find region [record] in cache GemFireCache[id = 20255495;
isClosing = false; isShutDownAll = false;
closingGatewayHubsByShutdownAll = false; created = Mon Jan 23 11:45:10 EST 2017; server = false; copyOnRead = false; lockLease = 120; lockTimeout = 60]
at org.springframework.data.gemfire.RegionLookupFactoryBean.lookupFallback(RegionLookupFactoryBean.java:72)
at org.springframework.data.gemfire.RegionLookupFactoryBean.afterPropertiesSet(RegionLookupFactoryBean.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
... 13 more
我的XML文件是:
<beans>
....
<context:component-scan base-package="spring.gemfire.repository.deptemp"/>
<gfe:client-cache id="gemfireCache" pool-name="gfPool"/>
<!--Region for being used by the Record Bean -->
<gfe:replicated-region id="record" cache-ref="gemfireCache"/>
<bean id="record" class="spring.gemfire.repository.deptemp.beans.Record"/>
<gfe:pool id="gfPool" max-connections="10" subscription-enabled="true" >
<gfe:locator host="localhost" port="10334"/>
</gfe:pool>
<gfe:lookup-region id="record" />
<gfe-data:repositories base-package="spring.gemfire.repository.deptemp.repos"/>
</beans>
答案 0 :(得分:0)
Abhisekh -
为什么你有这两个......
<gfe:replicated-region id="record" cache-ref="gemfireCache"/>
这就是......
<gfe:lookup-region id="record" />
另外,你已经定义了这个......
<bean id="record" class="spring.gemfire.repository.deptemp.beans.Record"/>
基于&#34; order&#34;哪个(最明确地)覆盖你的REPLICATE Region bean定义(也包括id="record"
)。您在上面定义的XML中的bean定义。
虽然 Spring 首先遵守bean定义之间的依赖顺序,但是当没有依赖(显式或隐式)存在时,它通常会遵循声明的顺序。
由于<bean id="record" .../>
位于<gfe:replicated-region id="record" ../>
之后,<bean id=
记录../>
会覆盖<gfe:replicated-region id="record"/>
bean定义。
此外,由于您未使用GemFire / Geode的本机配置(例如<gfe:lookup-region>
)或群集配置服务,因此不需要cache.xml
。
此外,您宣布ClientCache
,因此技术上可能希望<gfe:client-region>
与GemFire / Geode服务器区域匹配,是吗?!
虽然您可以在客户端上创建REPLICATE区域(甚至PARTITION区域),但您通常不这样做,因为这些区域不是任何分布式系统或GemFire集群的一部分&#34; Server&#34;节点
客户端区域(可以是PROXY,甚至是CACHING_PROXY)会将数据操作分发到服务器。此外,如果您拥有只有特定客户需要的数据,那么您应该使用<gfe:local-region>
创建本地区域。
我肯定会读到这个,首先......
http://gemfire.docs.pivotal.io/geode/basic_config/book_intro.html
接着是下一个......
http://gemfire.docs.pivotal.io/geode/topologies_and_comm/book_intro.html
然后这......
http://gemfire.docs.pivotal.io/geode/developing/book_intro.html
最后......
http://docs.spring.io/spring-data-gemfire/docs/current/reference/html/#bootstrap
-John