Я создал проект OSGi Bundle Project в Eclipse, и я хочу запустить его программно из другого Java-проекта.Программный запуск пакета OSGi
Это то, что я пытаюсь сделать:
FrameworkFactory frameworkFactory = ServiceLoader.load(FrameworkFactory.class).iterator().next();
Map<String,String> config = new HashMap<String,String>();
Framework framework = frameworkFactory.newFramework(config);
framework.start();
BundleContext context = framework.getBundleContext();
Bundle bundle = context.installBundle("file:./test.ServiceA");
bundle.start();
, но у меня есть эта ошибка
Exception in thread "main" org.osgi.framework.BundleException: Error loading bundle activator.
...
Caused by: java.lang.ClassNotFoundException: test.servicea.Activator cannot be found by test.ServiceA_1.0.0.qualifier
все работает, если я установить плагин банку вместо точки в папку
Bundle bundle = context.installBundle("file:./tmp/test.ServiceA_1.0.0.201504172035.jar");
, но я хотел бы отлаживать непосредственно папку проекта Eclipse.
Кто-нибудь может мне помочь?
Это не работает, оно продолжает возвращать мне ту же ошибку 'java.lang.ClassNotFoundException: test.servicea.Activator не может быть найден test.ServiceA_1.0.0.qualifier' – dash1e
Делает ./test.serviceA/test /servicea/Activator.class существует? Не могли бы вы попытаться установить ваш комплект, используя абсолютный путь? –
Eclipse помещает все классы в папку './test.serviceA/bin/...'. – dash1e