OSGi Plugin als Service exportieren und verwenden

andkul

Bekanntes Mitglied
Hallo,

ich habe gestern angefangen, mich in RCP (und RAP) einzulesen und ich muss sagen, ich tu mich da echt schwer und habe deshalb einige Fragen:
1) ich muss/kann doch meine Anwendung in der start()-Methode des Activator als Service registrieren, und zwar in PluginA. Dazu habe ich eine TestFactory angemeldet, die eine TestAnwendung erstellt.
Wie kann ich jetzt ein PluginB machen, das dann an die TestFactory von PluginA rankommen kann, um eine TestAnwendung zu erstellen/sich zurückgeben zu lassen?

Muss ich dazu das PluginA exportieren?
Muss ich dazu in PluginB das PluginA als Abhängigkeit definieren?
Kann ich mir in PluginB nicht eine Referenz auf PluginA holen, in dem ich irgendwie Platform.getBundle("id.pluginA") nutze?

Danke schon mal...
 
Zuletzt bearbeitet:
super, danke für die schnelle Antwort.
Das ist genau das was ich suche, wußte nicht, dass es für OSGi ein extra Tutorial gibt. Ich hatte gleich mit RCP angefangen und da haben mir wohl ein paar Grundlagen gefehlt...

Aber gleich noch eine Frage hinterher:
Ich bekomme ständig folgende Exception

Java:
HTTP ERROR 500
Problem accessing /rap. Reason: 
    An entry point named 'hello' does not exist.
Caused by:
java.lang.IllegalArgumentException: An entry point named 'hello' does not exist.
	at org.eclipse.rwt.internal.lifecycle.EntryPointManager.createUI(EntryPointManager.java:77)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:245)
	at org.eclipse.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:114)
	at java.lang.Thread.run(Unknown Source)
	at org.eclipse.rwt.internal.lifecycle.UIThread.run(UIThread.java:102)

Dabei hab ich ja garkeinen EntryPoint namens hello.
(also, ich versuche eine RAP-Anwendung zu erstellen, deshalb entry point)

Aber warum sucht denn Eclipse nach einem Entry Point namens hello?
Wo außer in der Manifest könnte denn das noch stehen?
 
nein, da hab ich zuerst gesucht, da steht aber leider nix von hello. Mein Eintry Point heißt test.
Naja, trotzdem danke für die Antwort
 
Ok, ich bin jetzt gerade dabei das vogella-Tutorial zu machen und kurz vor der Verzweiflung
Ich hab folgendes gemacht:
1. ein Plugin namens quote ohne Activator und mit einem Interface IQuoteService
2. ein Plugin namens quoteservice mit Activator und mit einer Klasse QuoteService, die IQuoteService implementiert
3. ein Plugin namens quoteconsumer mit Activator und einer Consumer mit einem Activator, in dem versucht wird, eine Referenz auf den Service zu bekommen:

quoteservice Activator:
Java:
IQuoteService service = new QuoteService();
		// Third parameter is a hashmap which allows to configure the service
		// Not required in this example
		context.registerService(IQuoteService.class.getName(), service,
				null);
		System.out.println("IQuoteService is registered");

quoteconsumer Activator:
Java:
this.context = context;
		// Register directly with the service
		ServiceReference reference = context
				.getServiceReference(IQuoteService.class.getName());
		service = (IQuoteService) context.getService(reference);
		System.out.println(service.getQuote());

Ich hab alle 3 Plugins exportiert, die liegen jetzt einfach in einem Ordner c:/eclipse_plugins/plugins als jar-Dateien, keine Ahnung ob das so passt.
Die Plugins quoteservice und quoteconsumer haben das plugin quote (bzw. das package mit dem Interface IQuoteService) als Abhängigkeit.

Wenn ich jetzt quoteconsumer laufen lasse, erhalte ich folgende Exception:

Java:
osgi> !SESSION 2011-09-08 15:37:48.447 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_26
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Command-line arguments:  -dev file:C:/Users/AndreasK/Dev/EclipseRCPTest/.metadata/.plugins/org.eclipse.pde.core/New_configuration/dev.properties -os win32 -ws win32 -arch x86 -consoleLog -console -consolelog

!ENTRY de.vogella.osgi.quoteservice 4 0 2011-09-08 15:37:48.904
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in de.vogella.osgi.quoteservice.Activator.start() of bundle de.vogella.osgi.quoteservice.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.NullPointerException
	at de.vogella.osgi.quoteservice.Activator.start(Activator.java:25)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 11 more
Root exception:
java.lang.NullPointerException
	at de.vogella.osgi.quoteservice.Activator.start(Activator.java:25)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY de.vogella.osgi.quoteconsumer 4 0 2011-09-08 15:37:48.908
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in de.vogella.osgi.quoteconsumer.Activator.start() of bundle de.vogella.osgi.quoteconsumer.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.NullPointerException: A null service reference is not allowed.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:660)
	at de.vogella.osgi.quoteconsumer.Activator.start(Activator.java:24)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 11 more
Root exception:
java.lang.NullPointerException: A null service reference is not allowed.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:660)
	at de.vogella.osgi.quoteconsumer.Activator.start(Activator.java:24)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY org.eclipse.osgi 4 0 2011-09-08 15:37:48.911
!MESSAGE Bundle de.vogella.osgi.quoteservice_1.0.0.qualifier [6] is not active.

!ENTRY org.eclipse.osgi 4 0 2011-09-08 15:37:48.912
!MESSAGE Bundle de.vogella.osgi.quoteconsumer_1.0.0.qualifier [7] is not active.

Ich hab das Tutorial jetzt bereits 3 mal von ganz vorne gemacht und immer mit diesem Ergebnis. Was mach in denn da falsch, ich weiß nicht mehr weiter und wäre echt dankbar für etwas Hilfe...
 
hast du alle 3 Bundles installiert?
läuft quoteservice auch (bereits)?
Wenn Quoteservice nicht läuft, dann wurde der Service logischerweise nie registriert und der Service in quoteconsumer ist null (könnte eine Erklärung sein).
 
wenn ich versuche, den quoteservice zu starte bekomme ich diese (gleiche?) Exception:

Java:
!ENTRY de.vogella.osgi.quoteservice 4 0 2011-09-08 16:11:30.070
!MESSAGE 
!STACK 0
org.osgi.framework.BundleException: Exception in de.vogella.osgi.quoteservice.Activator.start() of bundle de.vogella.osgi.quoteservice.
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:806)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)
Caused by: java.lang.NullPointerException
	at de.vogella.osgi.quoteservice.Activator.start(Activator.java:25)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	... 11 more
Root exception:
java.lang.NullPointerException
	at de.vogella.osgi.quoteservice.Activator.start(Activator.java:25)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:783)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:774)
	at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:755)
	at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
	at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:374)
	at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1067)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:561)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:546)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:459)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
	at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:440)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:227)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:337)

!ENTRY org.eclipse.osgi 4 0 2011-09-08 16:11:30.082
!MESSAGE Bundle de.vogella.osgi.quoteservice_1.0.0.qualifier [6] is not active.
 
Zuletzt bearbeitet:
Nein die gleiche ist es nicht. Bei der ersten motzt er, weil die ServiceReference null ist.

Beim zweiten fliegt iwo in Zeil 25 eine NPE im Activator.

edit
Gib mal in der Konsole [c]ss[/c] ein und überprüfe, ob dort alle deine 3 Bundles gelistet sind (und Aktiv)
 
Zuletzt bearbeitet von einem Moderator:
ok, hab ich gemacht, mit folgendem Ergebnis:

quote (das Interface) ist Active
quoteservice (die Implementierung) ist Resolved (es gab eine Exception beim start)
quoteconsumer ist Resolved (es gab eine Exception beim start)

was bedeutet das jetzt? Resolved bedeutet doch eigentlich, dass alle Abhängigkeiten aufgelöst werden konnten und das Bundle jetzt gestartet werden kann, oder?
Aber auch bei mehreren start-Versuchen gibt es jedes mal eine Exception und der Status bleibt Resolved.

Das Problem muss doch eigentlich in den Activator-Klassen liegen oder?
Hier nochmal die ganzen Activator-Klassen:
quoteservice
Java:
package de.vogella.osgi.quoteservice;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

import de.vogella.osgi.quote.IQuoteService;
import de.vogella.osgi.quoteservice.internal.QuoteService;

public class Activator implements BundleActivator {

	private static BundleContext context;

	static BundleContext getContext() {
		return context;
	}
	
	public void start(BundleContext bundleContext) throws Exception {
		IQuoteService service = new QuoteService();
		context.registerService(IQuoteService.class.getName(), service,	null);
		System.out.println("IQuoteService is registered");
	}
	
	public void stop(BundleContext bundleContext) throws Exception {
		Activator.context = null;
	}
}

quoteconsumer
Java:
package de.vogella.osgi.quoteconsumer;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;

import de.vogella.osgi.quote.IQuoteService;

public class Activator implements BundleActivator {

	private static BundleContext context;
	private IQuoteService service;

	static BundleContext getContext() {
		return context;
	}

	public void start(BundleContext context) throws Exception {
		this.context = context;
		ServiceReference reference = context
				.getServiceReference(IQuoteService.class.getName());
		service = (IQuoteService) context.getService(reference);
		System.out.println(service.getQuote());
	}

	public void stop(BundleContext context) throws Exception {
		System.out.println(service.getQuote());
	}
}

und hier nochmal die Exception bei dem Versuch quoteservice zu starten
Java:
osgi> start 7
org.osgi.framework.BundleException: Exception in de.vogella.osgi.quoteservice.Ac
tivator.start() of bundle de.vogella.osgi.quoteservice.
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActiv
ator(BundleContextImpl.java:806)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(Bund
leContextImpl.java:755)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(Bundl
eHost.java:370)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:276)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._st
art(FrameworkCommandProvider.java:252)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.
execute(FrameworkCommandInterpreter.java:155)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(F
rameworkConsole.java:156)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(
FrameworkConsole.java:141)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(Framewo
rkConsole.java:105)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
        at de.vogella.osgi.quoteservice.Activator.start(Activator.java:19)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(Bund
leContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActiv
ator(BundleContextImpl.java:774)
        ... 14 more
Nested Exception:
java.lang.NullPointerException
        at de.vogella.osgi.quoteservice.Activator.start(Activator.java:19)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(Bund
leContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActiv
ator(BundleContextImpl.java:774)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(Bund
leContextImpl.java:755)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(Bundl
eHost.java:370)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:276)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._st
art(FrameworkCommandProvider.java:252)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.
execute(FrameworkCommandInterpreter.java:155)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(F
rameworkConsole.java:156)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(
FrameworkConsole.java:141)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(Framewo
rkConsole.java:105)
        at java.lang.Thread.run(Unknown Source)
Nested Exception:
java.lang.NullPointerException
        at de.vogella.osgi.quoteservice.Activator.start(Activator.java:19)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(Bund
leContextImpl.java:783)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActiv
ator(BundleContextImpl.java:774)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(Bund
leContextImpl.java:755)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(Bundl
eHost.java:370)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(Abstrac
tBundle.java:276)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._st
art(FrameworkCommandProvider.java:252)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.
execute(FrameworkCommandInterpreter.java:155)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(F
rameworkConsole.java:156)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(
FrameworkConsole.java:141)
        at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(Framewo
rkConsole.java:105)
        at java.lang.Thread.run(Unknown Source)




Vielen Dank nochmal für die prompten Antworten, alleine wäre ich aufgeschmissen...
 
Zuletzt bearbeitet:
Ok, das ist jz echt ein blöder Fehler:
[c]context[/c] ist null!
entweder du schreibst im QuoteService in die erste zeile der start-methode:
[c]context=bundleContext[/c];
oder du verwendest in Zeile 19 [c]bundleContext[/c] anstatt [c]context[/c]
 
ahhhh, ja, das klingt einleuchtend, oh mann, das hat mich jetzt echt viel Zeit gekostet.
Den Quellcode für die Activator-Klassen hab ich aus dem Tutorial kopiert und deshalb nicht sooo genau kontrolliert, ich Idiot. Das werd ich morgen früh gleich mal korrigieren.

Vielen Vielen Dank für deine Hilfe, hoffentlich kann ich jetzt endlich durchstarten 🙂
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben