2012-04-16 4 views
1

활성 메소드를 사용하여 "구식"서비스를 선언하는 시스템이 있습니다.비 선언적 서비스를 참조하는 OSGi 선언적 서비스

이제 선언적 서비스를 사용하여 새 번들을 작성합니다. 새 번들에서 선언적 서비스 기술을 사용하여 게시되지 않은 서비스를 참조 할 수 있습니까?

+1

시도해 보셨습니까? 그게 왜 문제가되는지 나는 알지 못한다. –

+0

예. 시도해 보았습니다. Service Registry에서 서비스를 보았지만 바인딩/바인딩 해제 메소드에 대한 호출을받지 못했습니다. 액티베이터를 구현할 때 즉시 작업했습니다. 나는 이것을 너무 많이 파고 들일 시간이 없었지만, 그것은 단지 어리석은 실수라고 생각한다. 이제 적어도 작동해야한다는 것을 알았습니다. –

+0

선언적 서비스 설명자를 제공해 주시겠습니까? 참조 정의에 오류가있을 수 있습니다. –

답변

3

서비스를 OSGi Service Registry에 게시하는 "오래된 방법"이 없습니다. BundleContext.registerService()에는 한 가지 방법 만 있습니다. 액티베이터에서 수동으로 수행 할 수도 있고 Declarative Services/Blueprint 엔진으로 수행 할 수도 있습니다.

DS 설명자에서 Service Registry에서 사용할 수있는 서비스에 대한 참조를 정의합니다.

3

예, 가능합니다. DS 구성 요소에서 서비스를 참조 할 때 해당 서비스의 내부 구현에 대해 걱정할 필요가 없습니다.

기타 서비스 은 다른 DS 구성 요소이거나 Spring-DM 구성 요소이거나 OSGi API에 대한 명시 적 호출로 게시 될 수 있습니다. 너는 상관 없어. 그것은 단지 서비스 일뿐입니다.

관련 문제