2015-10-26 107 views
0

只是我的osgi項目的另一個問題。我得到這個錯誤代碼:osgi:Bundle不活躍

!SESSION 2015-10-26 10:50:01.671 ------------------------- ---------------------- eclipse.buildId = unknown java.version = 1.8.0_60 java.vendor = Oracle Corporation BootLoader常量:OS = win32,ARCH = x86_64,WS = win32, NL = de_DE命令行參數:-dev file: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 Framew orkEvent錯誤!堆棧0 org.osgi.framework.BundleException: 加載bundle激活器時出錯。在 org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:711) 在 org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:941) 在 有機eclipse.osgi.internal.framework.EquinoxBundle $ EquinoxModule.startWorker(EquinoxBundle.java:318) at org.eclipse.osgi.container.Module.doStart(Module.java:571)at org.eclipse.osgi.container。 Module.start(Module.java:439)at org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer.java:1582) at org.eclipse.osgi.container.ModuleContainer $ ContainerStartLevel.incStartLevel(ModuleContainer .java:1562) at 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.qual ifier在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:439) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:352) 在 有機.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更多Root異常: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。啓動(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)。 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.doContainerSta rtLevel(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 2015-10-26 10:50:02.322!MESSAGE Bundle 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。它們也在參考庫中。

任何人有想法?謝謝

+2

「拋出java.lang.ClassNotFoundException:de.delicom.testosgi.Activator.java」 爲什麼會說 「的.java」 在那裏?應該只是一個類名。您的清單看起來沒問題。也許舊版本仍然部署/緩存? – Thilo

+0

這是我第一次安裝osgi。我還得到了一個「java.lang.IllegalStateException:工作臺尚未創建。」錯誤。你知道那裏發生了什麼嗎? 我不知道爲什麼在那裏有「.java」。 – creative235

+0

搜索「Activator.java」的所有文件。 – Thilo

回答

0

> org.osgi.framework.BundleException:錯誤加載包激活 這是典型的運行時錯誤,如果你忘記定義的「bin /」(或「目標/ ..」)文件夾 你項目: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