2017-02-06 8 views
0

배경 : proj A와 proj B라는 두 개의 프로젝트가 있습니다. 이제 proj A에 cache.xml 파일 인 java bean (고객 빈), 저장소 클래스 (RecordRepository). 내가 PROJ의 B에서다른 .jar 파일의 cache.xml에 정의 된 Bean을로드하는 중 문제가 발생합니다.

Cache.xml

</gfe:client-region> 

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

cache.xml에 저장소 클래스를 로딩하고, 나는 PROJ A의 항아리를 가져온 다음 빈과 저장소를로드하려고합니다. 나의 목표는 고객 빈의 객체를 생성 한 다음 저장소 빈을 호출하여 고객 빈을 저장하는 것이다.

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); 

하지만 다음과 같은 예외가 점점 오전 :

예외 스레드를 "주"org.springframework.beans.factory.NoSuchBeanDefinitionException : 유형의 어떤 자격 콩은 [cache.repository.RecordRepository] 정의되지 않은 (AbstractApplicationContext.java:1125) at com.rxc.cacheclient.CacheLoaderClient .main (CacheLoaderClient.java:40)

답변

0

무엇을 의미합니까?

proj B에서 proj A의 jar 파일을 가져온 다음 bean과 저장소를로드하려고 시도합니다.

그리고 구체적으로 ... "나는 'proj A의 항아리'를 가져 왔습니까?

효과적으로

, PROJ A의 JAR 파일은 물론, cache.repository.RecordRepository가 PROJ A를에 정의 된 Repository 클래스의 정규화 된 클래스 이름 (FQCN) 인, 가정, PROJ의 B에 의해 생성 된 응용 프로그램의 클래스 경로에 있어야하며 어떤을 봄의 클래스 경로 구성 요소 검사에 뽑힐 것으로 예상

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

이 아마도 당신이 공유 할 수 있습니다 ... 즉, PROJ의 B의 응용 프로그램에서 응용 프로그램 정의 Repositories (예 : RecordRepository로)의 위치를 ​​SD의 인프라에서 사용 GitHub 프로젝트와 함께 애플리케이션 코드 및 구성

감사! -John

+0

그게 내가하고있는 일입니다. Proj의 Jar 파일을 프로젝트 B의 클래스 패스에 추가하려고합니다.하지만 RecordRepository를 가져 오지 않습니다. 그러나 Proj B에 Proj A를 추가하면 RecordRepository를 가져 와서 영역을 업데이트합니다. 확실하지는 않지만, 생성되는 jar 파일에 문제가있는 것처럼 보입니다. – abhisekh

+0

두 프로젝트 Proj A와 Proj B가 있습니다. Proj A에는 CrudRepository를 확장하는 저장소 인터페이스가 있습니다.이 저장소 인터페이스는 지역의 데이터를 가져오고 저장하는 데 사용됩니다. 자, Proj B에 Proj A를 포함 시켰을 때 지역에 데이터를 저장/업데이트 할 수 있습니다. 그러나, Proj A의 jar 파일을 생성하고 Project B의 classpath에 그 jar 파일을 포함 시키면 저장소에서()/get()을 수행 할 수 없으며 오류가 발생합니다 - org.springframework.beans.factory.NoSuchBeanDefinitionException : [FacilityRepository] 유형의 적격 빈이 정의되지 않았습니다. – abhisekh