在加载另一个.jar文件的cache.xml中定义的bean时遇到问题

时间:2017-02-06 20:42:25

标签: gemfire spring-data-gemfire

背景:我有两个项目,proj A和proj B.现在,在proj A中我有一个cache.xml文件,一个java bean(比如客户bean),一个存储库类(RecordRepository)。我在cache.xml中加载了存储库类

Cache.xml

</gfe:client-region>

<!--Scan for annotated GemFire Repositories-->
<gfe-data:repositories base-package="cache.repository" />

在proj B中,我导入了proj A的jar,然后尝试加载bean和存储库。 我的目标是创建一个customer bean对象,然后调用repository类来保存customer bean。

Employee emp = (Employee)facilityCacheLoader.getRegionBean();
emp.setRecordId("2001");
emp.setRecordString("record string 2002");

// update the Bean and save

RecordRepository rep = (RecordRepository)facilityCacheLoader.getRepository();
rep.save(emp);

但是我得到以下例外:

线程“main”中的异常org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义[cache.repository.RecordRepository]类型的限定bean     在org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:296)     在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1125)     在com.rxc.cacheclient.CacheLoaderClient.main(CacheLoaderClient.java:40)

1 个答案:

答案 0 :(得分:0)

你是什么意思?

  

在proj B中,我导入了proj A的jar,然后尝试加载bean和存储库。

具体而言......&#34;我&#39; import&#39; proj A&#34;?

的罐子

实际上,proj A的JAR文件必须位于proj B创建的应用程序的类路径中,当然假设cache.repository.RecordRepository是{{1}的完全限定类名(FQCN)在proj A中定义的类,并且您希望在 Spring的类路径组件扫描中获取它,由SD的基础结构用于定位应用程序定义的{{1} }(例如你的Repository)在proj B的应用程序中,即......

Repositories

也许您可以与应用程序代码和配置共享GitHub项目

谢谢! -John