OSGi-Bundle starten

8

Ich versuche, OSGi Plug-in in Eclipse auszuführen. Es ist ein leeres Bündel, aber die Sonnenfinsternis schickt mir immer Fehler Es gibt meine Konsolenmeldungen Ссылка Was ist los?

    
EK. 10.08.2010, 09:06
quelle

6 Antworten

6

Das Problem besteht darin, dass das Standardziel viele Bundles enthält, die nichts mit Ihrem Bundle zu tun haben. Geben Sie den Befehl ss ein, wenn alle Fehlermeldungen beendet sind, werden sie aufgelistet.

Folgendes tun Sie:

  1. Gehen Sie in Eclipse zu Einstellungen & gt; Plug-in-Entwicklung & gt; Zielplattform
  2. Erstellen Sie eine neue leere Zieldefinition
  3. Fügen Sie auf der Registerkarte Standorte ein Verzeichnis hinzu, das nur das Equinox-Paket enthält (das Sie aus dem Plug-in-Verzeichnis Ihrer Eclipse-Installation kopieren können, das jar heißt etwa org.eclipse.osgi_3.7.0.v20110613.jar)
  4. Stellen Sie sicher, dass das neue Ziel aktiv ist, und versuchen Sie erneut, Ihr Bundle auszuführen
garamond 25.06.2011, 20:31
quelle
5

Ich habe viel gekämpft für "Workbench wurde noch nicht erstellt" den ganzen Tag.

Aber ich habe die Lösung durch die folgenden Schritte .-

  1. Gehen Sie zur Konfiguration ausführen - & gt; Entfernen Sie alle Ziel-Plattform-Jars.
  2. Klicken Sie auf die gewünschten Bundles hinzufügen.
  3. Überprüfen Sie die org.apache.felix.gogo.runtime, org.apache.felix.gogo.shell, org.eclipse.eqinox.console, org.eclipse.osgi und Ihre jar-Datei.
  4. Der letzte und wichtige Schritt. Gehe zu Einstellung - & gt; Aktivieren Sie das Kontrollkästchen "Löschen Sie den Konfigurationsbereich vor dem Start von ".
  5. Führen Sie die OSGi-Anwendung jetzt aus.
  6. Genieß es, wenn es für dich funktioniert, wie es für mich funktioniert hat.

Danke

    
Shivam 28.01.2014 12:11
quelle
3

Das ist das Hauptproblem:

  

java.lang.IllegalStateException: Workbench wurde noch nicht erstellt.

Sie verwenden Methoden / Objekte aus der Workbench oder beziehen sich auf die Workbench, während die Workbench selbst noch nicht erstellt wurde. Vielleicht können Sie die Aktivierung des Bundles verzögern oder Abhängigkeiten von Workbench aus dem Aktivierungs / Initialisierungsteil des Bundles entfernen.

Huch, zurück zum Anfang. Die letzte Zeile des Protokolls enthält eine "Hallo Welt" - ist das die erwartete Ausgabe von Ihrem Bundle? Vielleicht ist es nicht Ihr Bündel, das die Fehler und Warnungen in der Ausgabe verursacht. Ich sehe auch 'Mylin' und andere Sachen. Wenn möglich, fügen Sie Ihrem System eine weitere Neuinstallation von Eclipse (keine zusätzlichen Bundles / Plugins) hinzu und versuchen Sie das Bundle in dieser Umgebung.

Von einem guten Artikel über eclipsezone :

  

Dies kommt normalerweise, wenn jemand versucht, eine Java-Anwendung gegen ein OSGi-Paket mit java -classpath .... auszuführen. Es bedeutet wirklich, dass das Workbench-Plug-in noch nicht gestartet wurde, und ruft daher auf, dass getWorkbench () fehlschlägt. Dies ist im Wesentlichen eine Race-Bedingung und kann gelöst werden, indem man entweder eine explizite Abhängigkeit von diesem Bündel ausdrückt oder dieses Bündel zu einem höhere Startlevel als die Workbench. Normalerweise nicht gesehen, aber wenn es so ist, passiert das.

Was ist die Oberklasse Ihres eigenen Pakets? Weil das eine Abhängigkeit von der Workbench verursachen könnte.

Und - wie startet man das Bundle, aus der Eclipse heraus oder hat man es in den Eclipse-Plugin-Ordner gepackt? Das könnte einen Unterschied machen.

    
Andreas_D 10.08.2010 09:14
quelle
2

Keiner dieser Fehler hat etwas mit Ihrem Paket zu tun. Wie Sie in der Ausgabe "Hello World" sehen können, startet Ihr Bundle gut.

Ich glaube, Sie starten Eclipse auf die falsche Art und aktivieren wahrscheinlich alle Bündel eifrig. Eclipse muss mit den meisten Workbench-Bundles im "Lazy Activation" -Modus starten.

  1. Bitte geben Sie an, wie Sie Eclipse starten. Hast du -console zur eclipse.ini Datei hinzugefügt?
  2. Tritt dieses Problem auf, wenn Sie nicht versuchen, Ihr eigenes Paket zu verwenden?
  3. Wie installieren und aktivieren Sie Ihr eigenes Paket?
  4. Bitte fügen Sie die folgenden Dateien ein:
    • Die MANIFEST.MF aus Ihrem eigenen Paket
    • config.ini von ECLIPSE_HOME/configuration
    • eclipse.ini von ECLIPSE_HOME
Neil Bartlett 21.08.2010 22:47
quelle
0

Überprüfen Sie zuerst die Abhängigkeiten des leeren Plugins. Möglicherweise fehlen Sie, um ein Plugin hinzuzufügen, das zur Laufzeit nicht geladen wird.

Wenn Sie Abhängigkeiten in Ihrem Plugin haben, überprüfen Sie, welche Version der Plugins verwendet wird.

Welche Java-Version haben Sie in Ihrem Plugin definiert? Ist es höher als die Version, die Sie zur Laufzeit verwenden?

Lädt Ihr Plugin DLLs? Wenn ja, überprüfen Sie, ob die DLL zur Laufzeit gefunden werden kann.

Bearbeiten:

  

#   Workbench wurde noch nicht erstellt.   #           bei org.eclipse.ui.PlatformUI.getWorkbench (PlatformUI.java:92)   #           at org.eclipse.mylyn.internal.monitor.ui.MonitorUiPlugin.start (MonitorUiPlugin.java:145)

Was haben Sie in der Startmethode des Activators definiert? Es sät, dass Sie die Workbench verwenden, die noch nicht erstellt wurde.

    
Markus Lausberg 10.08.2010 09:12
quelle
0

Versuchen Sie dies, bevor Sie Ihr Paket ausführen:

%Vor%     
Krumelur 10.08.2010 09:24
quelle

Tags und Links