OSGi에서 제대로 작동하는 프레임 워크 모듈을 가지고 있습니다. 모든 서비스와 구성 요소는 서로를 찾고 잘 작동합니다.OSGi의 동적 클래스 로딩
그러나 클래스와 관련하여 동적 인 작업을 수행하는 프레임 워크가 하나 있습니다. 기본적으로 어떤 점에서 클래스 이름을 지정하면 Class.forName()을 수행하고 반사 마법이 발생합니다.
이것은 표준 jvm에서 실행하고 SPI를 사용하여 프레임 워크를 연결하는 데 유용하지만 프레임 워크를 통해 접근하려는 무작위 클래스 "test.MyTest"가 보이지 않기 때문에 OSGi에서 실패합니다 고 말했다.
그것은 "java.lang.ClassNotFoundException가 : test.MyTest 프레임 워크에 의해 찾을 수 없습니다"가 발생합니다
그래서 내 질문 : 어떻게 모두 볼 필요가있는 프레임 워크에 대한 가시성의 부족을 해결할 수 있습니까?Import-Package: *
?
UPDATE
은은 OSGi이 전면에 2010 년 이후 많이 변경되지 않았습니다 가정하면, 기사 http://njbartlett.name/2010/08/30/osgi-readiness-loading-classes.html는 매우 흥미 롭다. 나는 현재 OSGi를 통해 주입되는 클래스와 도메인 팩토리를 적극적으로 등록하는 지원을 추가했다.
그 외에도 기본 해결은 어쨌든 컨텍스트 클래스 로더를 사용하므로 다른 모든 것이 실패하면 클래스를로드하고로드하는 데 사용됩니다.
UPDATE는
나는 작은 프로젝트에 쉽게뿐만 아니라 제안 DynamicImport-Package
에 대한 지원을 추가했습니다.
어떤 프레임 워크에 대해 말하고 있습니까? 코드를 제어 할 수 있습니까? –
네, 그건 내 자신의 프레임 워크입니다. – nablex
그렇다면 꼭 Class.forName()을 피하십시오. 내 업데이트 된 대답을 참조하십시오 –