Eclipse ClassNotFound Exception bei Plugins

Eclipse zeigt eine ClassNotFound Exception wenn eine Klasse über zwei Plugins hinweg geladen wird. Dieses Problem trat bei mir auf, als ich zwei abhängige Plugins in Eclipse eingebunden hatte (Plugin A verwendet Actions aus Plugin B).

Beide Plugins können stand alone gestartet werden. Nur erweitert Plugin A über eine Action eine bestehende Action aus Plugin B.

Das Problem was nun, dass die Action zwar startete, aber sofort eine ClassNotFound Exception zeigte. Nach langem probieren stellte ich fest, dass wenn ich das jar, in welchem die nicht gefundene Klasse lag, aus dem Plugin A in das Plugin B wandern lasse, dass Problem nicht mehr auftritt.

Ich kann mir das nur so erklären, dass das OSGI zwar die Action aus Plugin A über den Extension Point startet, dann aber weil das Plugin B die Basisklasse für die Action stellt, sofort an den ClassLoader von Plugin B übergibt. Nur in diesem Fall ist die Meldung über die fehlende Klasse korrekt und der Gegentest indem das jar in Plugin B bekannt gemacht wird, untermauert dieses.

Ich konnte die Spezifikation oder das Design über dieses Verhalten bisher noch nicht finden. Wenn jemand drüber genauere Infos hat, wäre ich sehr dankbar. 🙂

Greez

Promotos

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.