펠릭스 실행기 클래스 (Main)에서 일부 매개 변수를 묶어야하고 this advice을 따라갔습니다. Main.java, Temp.java, TempI.javaOSGi 서비스 참조가 null입니다 (실행 프로그램에서 번들로 서비스)
번들 프로젝트를
test.bundle 패키지에 포함 : Activator.java을 나는
실행기 프로젝트
test.launcher 패키지에 포함 된 무슨 짓을
test.launcher 패키지에는 다음이 포함 TempI.java
당신은 내가 번들되지 발사기 등의 프로젝트를 번들로 TempI.java를 복사하고 패키지를 내보낼 수 없습니다 볼 수 있듯이.
활성제ServiceReference serviceReference = context.getServiceReference(TempI.class.getName());
TempI service = (TempI) context.getService(serviceReference);
System.out.println(service.testService());
주요
BundleContext context = felix.getBundleContext();
ServiceRegistration serviceRegistration=context.registerService(TempI.class.getName(), new Temp(), null);
에서
하지만 난
java.lang.NullPointerException이 활성제
얻을 : null 일 수 없습니다 지정된 서비스 참조.
무엇이 문제인가? 다시 다른 클래스 로더? 또는 무엇을?
대단히 감사합니다! 나는 그것이 내가 찾고 있었던 것이라고 생각한다. 한 인터페이스의 두 복사본이 같은지 그 이유는 확실하지 않았습니다. 내 질문에 패키지를 설명했습니다. 시간이 있다면 http://stackoverflow.com/questions/22963720/osgi-felix-ignores-osgi-inf를 (를) 볼 수 있습니까? –