У меня есть стандартный плагин bndtools для установки eclipse, а также выполняется время выполнения apache felix osgi. Я пытаюсь узнать о компонентах декларативных услуг (DS). По-видимому, перед аннотациями (для которых приведен пример в учебнике для bndtools), компоненты были написаны с использованием данных xml. Это то, что я пытаюсь сделать.не может запустить компонент Declarative Services (DS) с помощью bndtools
Вот простой класс (который будет опубликован в качестве компонента DS): «HelloComponent.java»
package org.osgi.book.ds.minimal;
public class HelloComponent {
public HelloComponent(){
System.out.println("HelloComponent created.");
}
}
Вот XML-файл, который делает компонент заявление: «minimal.xml»
<?xml version="1.0" encoding="UTF-8"?>
<!-- minimal.xml -->
<scr:component xmlns:scr="http://www.osgi.org/xlmns/scr/v1.1.0" immediate="true">
<implementation class="org.osgi.book.ds.minimal.HelloComponent"/>
</scr:component>
А вот файл .bnd, который должен быть использован в bndtools для создания банка файлов, которые в конечном итоге будут опубликованы в OSGi времени выполнения: «minimal_ds.bnd»
Private-Package: org.osgi.book.ds.minimal
Include-Resource: minimal.xml
Service-Component: minimal.xml
Обратите внимание, что у меня есть следующие связки и работает в принимающем во время выполнения OSGi контейнера:
ID|State |Level|Name
0|Active | 0|System Bundle (4.4.1)
2|Active | 1|Apache Felix Gogo Command (0.14.0)
3|Active | 1|Apache Felix Gogo Runtime (0.12.1)
4|Active | 1|Apache Felix Gogo Shell (0.10.0)
5|Active | 1|BookReaderOSGiInPractice.minimal_ds (0.0.0.201509091856)
15|Active | 1|Apache Felix Configuration Admin Service (1.8.0)
16|Active | 1|Apache Felix Declarative Services (1.8.2)
17|Active | 1|osgi.enterprise (4.2.0.201003190513)
18|Active | 1|osgi.residential (4.3.0.201111022239)
Несмотря на все время активно работает, я не могу понять, почему компонент DS не инициализируется (для который я должен увидеть консольный вывод: «HelloComponent created.»). Любая помощь приветствуется.
Наконец, здесь структура проекта:
BookReaderInPractice
|
|- src
| |- org.osgi.book.ds.minimal
| |_ HelloComponent.java
|
|- minimal_ds.bnd
|
|- minimal.xml
линий вы уже были включены в minimum_ds.bnd. Кроме того, когда я просматриваю сгенерированную банку, также включается файл minimum.xml вместе с пакетом java src. Использование метода активации также не выводило никаких консольных сообщений. Спасибо за попытку, хотя ... –
К сожалению ... полностью пропустили это, извините. Но теперь я заметил опечатку в вашем пространстве имен xml.xml: попробуйте «http://www.osgi.org/xmlns/scr/v1.1.0 "и он будет работать;) – evandor
работает как магия .. :) Большое спасибо evandor. –