当开始在Eclipse中我的OSGi应用程序,我得到以下错误:激活器X的条Y是无效的,造成的ClassNotFoundException:X
org.osgi.framework.BundleException: The activator org.pathvisio.sbgn.SbgnPlugin for bundle org.pathvisio.sbgn is invalid
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:157)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)
at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:352)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:370)
at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1068)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:557)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:464)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:248)
at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:445)
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.ClassNotFoundException: org.pathvisio.sbgn.SbgnPlugin
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:150)
... 10 more
这似乎是同样的问题: The activator for bundle is invalid
但是,无论我尝试什么,我都会收到同样的错误。即使我将Activator类的名称更改为其他名称,仍然会使用旧的类名给出完全相同的错误。
显然日食是缓存的东西,但我不知道什么或为什么。 我试过重新启动日食,并重建我的工作区中的所有项目,但没有任何帮助。
这里是我的MANIFEST.MF:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.pathvisio.sbgn
Bundle-SymbolicName: org.pathvisio.sbgn
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: org.pathvisio.sbgn.Activator
Bundle-ClassPath: lib/activation.jar,
lib/google-collect-snapshot-20090211.jar,
lib/jaxb-api.jar,
lib/jaxb-impl.jar,
lib/jaxb-xjc.jar,
lib/jaxb1-impl.jar,
lib/jsr173_1.0_api.jar,
lib/org.sbgn.jar
Export-Package: org.pathvisio.sbgn
Require-Bundle: com.springsource.org.jdom;bundle-version="1.1.0",
org.pathvisio.core;bundle-version="2.0.11",
org.bridgedb;bundle-version="1.1.0",
org.pathvisio.gui;bundle-version="2.0.11",
org.pathvisio.desktop;bundle-version="2.0.11",
org.bridgedb.bio;bundle-version="1.1.0"
Import-Package: org.osgi.framework;version="1.5.0"
正如你可以看到我改名为激活器类,但它的使用我先前指定的类名仍然报告错误。
是否有可能Eclipse需要在插件/项目后命名激活器?这将解释为什么它使用相同的名称,即使您更改了激活器。你有没有尝试过使用你的捆绑与另一个OSGi容器(处女座或费利克斯)? – TMN