Guten Morgen,
ich hoffe ich bin hier richtig für meine kleine OSGI-Frage. Ich entwickle mit Eclipse 3.5 und nutze deklarative Services.
Ich habe nun ein BundleA, welches ServiceA zur Verfügung stellt. Dazu habe ich ein weiteres BundleB, welches ServiceA nutzt (1..1, dynamisch).
Wenn ich dies starte funktioniert alles einwandfrei. Bei "ls" werden beide Komponenten aufgeführt. Auch per "ss" sind beide Komponenten sichtbar und bei "services" steht bei BundleA (ServiceA), dass dieses von BundleB genutzt wird. Es scheint also alles zu funktionieren.
Nun kommen wir zu meinem Problem. Wenn ich nun BundleB auch ein ServiceB anbieten soll, werden alle Bundles ebenfalls korrekt gestartet. Das Problem ergibt sich bei "services". Bei BundleA steht nicht mehr, dass BundleB dieses benutzt. D. h. der Service wurde nicht richtig registriert. Auch beim Debuggen, wird die bind-Methode nicht aufgerufen.
Woran kann das liegen? Wenn ich der ServiceB wieder entfernen, registriert sich ServiceA normal. Bei einem anderen Beispiel, welches ich implementiert habe funktioert es ohne Probleme.
Hoffe jemand hat eine Idee. Kann es mit fehlenden activate/deactivate Methoden zu tun haben? Diese verwende ich allerdings auch in der funktionieren Implementierung nicht.
Vielen Dank schon mal,
Viele Grüße
ich hoffe ich bin hier richtig für meine kleine OSGI-Frage. Ich entwickle mit Eclipse 3.5 und nutze deklarative Services.
Ich habe nun ein BundleA, welches ServiceA zur Verfügung stellt. Dazu habe ich ein weiteres BundleB, welches ServiceA nutzt (1..1, dynamisch).
Wenn ich dies starte funktioniert alles einwandfrei. Bei "ls" werden beide Komponenten aufgeführt. Auch per "ss" sind beide Komponenten sichtbar und bei "services" steht bei BundleA (ServiceA), dass dieses von BundleB genutzt wird. Es scheint also alles zu funktionieren.
Nun kommen wir zu meinem Problem. Wenn ich nun BundleB auch ein ServiceB anbieten soll, werden alle Bundles ebenfalls korrekt gestartet. Das Problem ergibt sich bei "services". Bei BundleA steht nicht mehr, dass BundleB dieses benutzt. D. h. der Service wurde nicht richtig registriert. Auch beim Debuggen, wird die bind-Methode nicht aufgerufen.
Woran kann das liegen? Wenn ich der ServiceB wieder entfernen, registriert sich ServiceA normal. Bei einem anderen Beispiel, welches ich implementiert habe funktioert es ohne Probleme.
Hoffe jemand hat eine Idee. Kann es mit fehlenden activate/deactivate Methoden zu tun haben? Diese verwende ich allerdings auch in der funktionieren Implementierung nicht.
Vielen Dank schon mal,
Viele Grüße