【问题标题】:osgi: Bundle is not activeosgi:捆绑未激活
【发布时间】:2015-10-26 09:56:30
【问题描述】:

我的 osgi 项目的另一个问题。我得到这个错误代码:

!会话 2015-10-26 10:50:01.671 ----------------------------------------------------------- eclipse.buildId =未知 java.version=1.8.0_60 java.vendor=Oracle 公司 BootLoader 常量:OS=win32, ARCH=x86_64, WS=win32, NL=de_DE 命令行参数:-dev 文件:C:/Users/Dennis/workspace/.metadata/.plugins/org.eclipse.pde.core/delicomFirstOSGIPlugin/dev.properties -os win32 -ws win32 -arch x86_64 -consoleLog -console

!ENTRY de.delicom.testosgi 4 0 2015-10-26 10:50:02.318 !MESSAGE FrameworkEvent 错误!堆栈 0 org.osgi.framework.BundleException: 加载捆绑激活器时出错。在 org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:711) 在 org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) 在 org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318) 在 org.eclipse.osgi.container.Module.doStart(Module.java:571) 在 org.eclipse.osgi.container.Module.start(Module.java:439) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 引起:java.lang.ClassNotFoundException: de.delicom.testosgi.Activator.java 找不到 de.delicom.testosgi_1.0.0.qualifier 在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) 在 org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:754) 在 org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:706) ... 11 更多根异常:java.lang.ClassNotFoundException: de.delicom.testosgi.Activator.java 找不到 de.delicom.testosgi_1.0.0.qualifier 在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:344) 在 org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:754) 在 org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:706) 在 org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) 在 org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:318) 在 org.eclipse.osgi.container.Module.doStart(Module.java:571) 在 org.eclipse.osgi.container.Module.start(Module.java:439) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1562) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476) 在 org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.osgi 4 0 2015-10-26 10:50:02.322 !MESSAGE 包 de.delicom.testosgi_1.0.0.qualifier [11] 未激活。

我的清单看起来像:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Testosgi
Bundle-SymbolicName: de.delicom.testosgi
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: de.delicom.testosgi.Activator
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ClassPath: . ,
 soapui-4.0.1.0.jar,
 xmlbeans-2.6.0.jar,
 xmlbeans-xpath-2.6.0.jar,
 src/
Bundle-ActivationPolicy: lazy

我添加到 Buildpath 和 Classpath 的外部 jar。它们也在引用的库中。

有人有想法吗?谢谢

【问题讨论】:

  • "java.lang.ClassNotFoundException: de.delicom.testosgi.Activator.java " 为什么里面写着“.java”?应该只是一个类名。您发布的清单似乎还可以。也许旧版本仍在部署/缓存?
  • 这是我第一次安装 osgi。我还收到“java.lang.IllegalStateException:尚未创建工作台”。错误。你知道那里发生了什么吗?我不知道为什么里面有“.java”。
  • 在所有文件中搜索“Activator.java”。
  • 是的,我的工作空间的 src 文件夹中有一个 Activator.java 文件。抱歉,我是 osgi 的菜鸟:/

标签: java eclipse osgi soapui manifest.mf


【解决方案1】:

>org.osgi.framework.BundleException:加载捆绑激活器时出错 如果您忘记定义“bin/”(或“target/..”)文件夹,这是典型的运行时错误 在您的项目中:META-INF/MANIFEST.MF:

Bundle-ClassPath: target/classes,  **<<<---- here is it !**
 libs/log4j-1.2.16.jar,
 libs/slf4j-api-1.6.0.jar,
 libs/slf4j-log4j12-1.6.0.jar,
 libs/commons-io-2.4.jar
Bundle-Activator: com.senatov.smapperApp.Activator

【讨论】:

    猜你喜欢
    • 2019-08-31
    • 2014-01-12
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多