3
불행히도 해결 된 참조로 프로그래밍 방식으로 osgi 서비스를 만드는 방법을 찾지 못했습니다. OSGi가 싱글 톤 객체로 서비스를 생성한다는 것은 잘 알려진 사실입니다. 어떤 이유로 새로운 서비스 인스턴스를 수동으로 만들어야합니다.주입으로 프로그래밍 방식으로 OSGI 서비스를 만들 수 있습니까?
사건 :
@Service(ICasualService.class)
@Component(immediate = true, label = "Casual Service")
public class CasualService implements ICasualService {
@Reference
private ConfigurationAdmin configurationAdmin;
}
번들 컨텍스트를 사용하여 나는 나의 서비스를 등록 할 수 있어요 :
private BundleContext bundleContext;
ICasualService casualService = new CasualService();
Dictionary props = new Properties();
bundleContext.registerService(ICasualService.class.getName(), casualService, props);
그러나,이 방법 configurationAdmin 새로운 생성 서비스에 null입니다.
질문은 프로그래밍 방식으로 서비스의 새 인스턴스를 만들 수 있는지 여부입니다.
감사합니다.
업데이트 : 해결 방법은 Felix (OSGi 구현)에서 작동해야합니다.
대단히 감사합니다! 그것은 작동합니다. 게다가, 1. this.factory.newInstance (Dictionary) 메소드로 전달하여 적절한 구성 매개 변수로 새 서비스를 작성할 수 있습니다. 2. 새로운 서비스 인스턴스를 생성합니다 (.newInstance (null)의 경우 매번 같은 객체를 반환합니다). –