Hallo zusammen,
ich habe ein Problem mit dem Einbinden eines Bundles in ein OSGi Framework. Als Zielsetzung habe ich, dass mein Bundle, welches ein Servlet ist, über den
Pfad "webserver/ajax/sipro" erreichbar ist. Lokal in Eclipse funktioniert das auch soweit.
Mein Problem ist, dass wenn ich das Bundle am OSGi Framework des Open-Xchange Servers anmelde es leider gar nicht erst gestartet wird, sondern eine ClassNotFound Exception wirft.
Klingt ja zunächst mal nach einem einfachen Fehler aber ich habe den Classpath im Manifestfile eigentlich gesetzt und dazu ist der Activator ja mit im Bundle.
Sollte also rein theoretisch vom Bundle ClassLoader gefunden werden ...
Hat einer eine Idee wo der Fehler sonst noch herkommen könnte? Ein zweites Testbundle ohne Activator wird interessanterweise im Framework als aktiv markiert
... ist aber leider auch nicht erreichbar. Wobei das vermutlich eher ein OX spezifisches Problem ist.
[edit] Das Problem mit der ClassNotFound Exception existiert nicht mehr. Man muss im Bundle Manifestfile unter dem Bundle Classpath außer dem '.' auch noch die Subfolder angeben.
ich habe ein Problem mit dem Einbinden eines Bundles in ein OSGi Framework. Als Zielsetzung habe ich, dass mein Bundle, welches ein Servlet ist, über den
Pfad "webserver/ajax/sipro" erreichbar ist. Lokal in Eclipse funktioniert das auch soweit.
Mein Problem ist, dass wenn ich das Bundle am OSGi Framework des Open-Xchange Servers anmelde es leider gar nicht erst gestartet wird, sondern eine ClassNotFound Exception wirft.
Java:
BundleException: The activator de.sipro.testservlet2.SiProActivator for bundle de.sipro.testservlet2 is invalid
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:141)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:970)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297)
Caused by: java.lang.ClassNotFoundException: de.sipro.testservlet2.SiProActivator
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:434)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:289)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:134)
... 10 more
Root exception:
java.lang.ClassNotFoundException: de.sipro.testservlet2.SiProActivator
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:434)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:369)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:357)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:83)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:289)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:227)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:134)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:970)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:346)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:350)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1118)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:634)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:508)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:282)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:468)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:195)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:297)
Klingt ja zunächst mal nach einem einfachen Fehler aber ich habe den Classpath im Manifestfile eigentlich gesetzt und dazu ist der Activator ja mit im Bundle.
Sollte also rein theoretisch vom Bundle ClassLoader gefunden werden ...
Hat einer eine Idee wo der Fehler sonst noch herkommen könnte? Ein zweites Testbundle ohne Activator wird interessanterweise im Framework als aktiv markiert
... ist aber leider auch nicht erreichbar. Wobei das vermutlich eher ein OX spezifisches Problem ist.
[edit] Das Problem mit der ClassNotFound Exception existiert nicht mehr. Man muss im Bundle Manifestfile unter dem Bundle Classpath außer dem '.' auch noch die Subfolder angeben.
Zuletzt bearbeitet: