Я только начинаю с DOSGi в Karaff используя Zookeeper. У меня есть услуга, предлагаемая в случае с Karaf и потребителем в другом. Сфера обслуживания работает хорошо. После публикации я вижу его с помощью команды log: display в консоли Karaf, где установлен Zookeeper, и я также могу получить доступ к wsdl браузером. Проблема в потребительской стороне. Он должен написать сообщение (ref code ниже), когда служба будет работать, но это никогда не произойдет. Потребительский код:Распределенный OSGI в Karaf -Consumer не запущен
package org.osgi.proyecto.dev.internal.consumer;
import org.osgi.proyecto.dev.consumer.IConsumer;
import org.osgi.proyecto.dev.sensor.ISensor;
public class Consumer implements IConsumer {
public void sensorActivo(ISensor sensor){
System.out.println("El sensor esta activo");
}
}
И component.xml:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" enabled="true" name="OSGI_Bundle-Consumer">
<implementation class="org.osgi.proyecto.dev.internal.consumer.Consumer"/>
<reference bind="sensorActivo" cardinality="1..1" interface="org.osgi.proyecto.dev.sensor.ISensor" name="ISensor" policy="dynamic"/>>
</scr:component>
Manifest:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: OSGI_Bundle-Consumer
Bundle-SymbolicName: OSGI_Bundle-Consumer2
Bundle-Version: 1.0.0.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Service-Component: OSGI-INF/component.xml
Import-Package: org.osgi.framework;version="1.8.0",
org.osgi.proyecto.dev.sensor
Я пытался заставить потребителя узелок (начало расслоение), и это дает мне эту ошибку:
Error starting bundle 137: Unable to resolve OSGI_Bundle-Consumer [137](R 137.1): missing requirement [OSGI_Bundle-Consumer [137](R 137.1)] osgi.wiring.package; (osgi.wiring.package=org.osgi.proyecto.dev.sensor) Unresolved requirements: [[OSGI_Bundle-Consumer [137](R 137.1)] osgi.wiring.package; (osgi.wiring.package=org.osgi.proyecto.dev.sensor)]
Кажется, что есть ошибка зависимости. Это решает установку пакета датчиков (установленное состояние) в экземпляре потребителя. Как я могу избежать установки одного и того же пакета датчиков в обоих экземплярах Karaf?
Спасибо, Кристиан, теперь проблема решена. Также поздравляем ваши учебные пособия. –