У меня следующая ситуация. Мне нужен экземпляр класса A в моем приложении, и этот класс A происходит из Bundle B (osgi) и находится в пакете X в этом Bundle. Что я сделал до сих пор: я добавил пакет B в локальный репозиторий maven и добавил его в свой pom как зависимость с «предоставленной» областью действия. Я также добавил пакет X из комплекта B, где класс A находится в моем pom с помощью Dynamic-import в моем pom.xml. Здесь следует отметить одну вещь - пакет X НЕ экспортируется из Пакета B, но я знаю, что он все еще может работать, я видел, как коллеги это делают, но я не настолько хорош.
В любом случае, как япытаюсь получить экземпляр класса ниже:
Bundle bundle;
Class<?> checkClass=bundle.loadClass("full path to class A");
TypeOfClassA newClass=checkClass.newInstance();
и вот я получаю:
java.lang.ClassNotFoundException ClassA not found by myapplication
at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation (BundleWiringImpl.java:1532) в
org.apache.felix.framework.BundleWiringImpl.access $ 400 (BundleWiringImpl.java:75)
Но почему? У меня загружен фляга, я использую загрузчик классов комплекта, также, если я приведу checkClass к объекту, я смогу увидеть методы и поля класса A, поэтому выглядит хорошо, как я могу получить экземпляр класса A?