2017-01-05 13 views
0
내가 그것을 활성화에-위해 모든 참조 클래스를 가져 오기 위해 아래의 코드를 사용하고

의 모든 클래스 이름을 가져 오는 없습니다 :ServiceReference 활성화

String filter = "(component.factory=com.requestclasses.mypack)"; 
bundleContext = componentContext.getBundleContext(); 
ServiceReference[] references = bundleContext.getAllServiceReferences(ComponentFactory.class.getCanonicalName(), filter); 

그러나 참조 나는 모든을받지 못했습니다 문제가 코드인지 아니면 AEM 5.6인지 확실하지 않습니다. 제안 사항이 있으십니까?

답변

2

일반적으로 이러한 저수준 API를 사용하여 서비스 참조를 쿼리하지 않는 것이 좋습니다.

당신은 너무 같은 @Reference 주석을 사용하여 이러한 참조 검색 더 나을 수 있습니다

@Reference(
    name = "componentFactories", 
    referenceInterface = ComponentFactory.class, 
    cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, 
    policy = ReferencePolicy.DYNAMIC 
) 
protected List<ComponentFactory> componentFactories = new ArrayList<ComponentFactory>();