2014-05-05 65 views
0

我正在EclipseZone上開始使用OSGi的Neil Bartlett系列。我在第三堂課http://www.eclipsezone.com/eclipse/forums/t90796.htmlosgi start bundle NoClassDefFoundError

創建和安裝的jar文件後,我得到一個問題開始吧:

org.osgi.framework.BundleException: The activator osgitut.movies.impl.MovieListerActivator for bundle MoviesLister is invalid 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171) 
     at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679) 
     at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381) 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299) 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:291) 
     at org.eclipse.osgi.framework.internal.core.FrameworkCommandProvider._start(FrameworkCommandProvider.java:333) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.eclipse.osgi.framework.internal.core.FrameworkCommandInterpreter.execute(FrameworkCommandInterpreter.java:209) 
     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.docommand(FrameworkConsole.java:155) 
     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.runConsole(FrameworkConsole.java:140) 
     at org.eclipse.osgi.framework.internal.core.FrameworkConsole.run(FrameworkConsole.java:104) 
     at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.NoClassDefFoundError: osgitut/movies/MovieLister 
     at java.lang.Class.getDeclaredConstructors0(Native Method) 
     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413) 
     at java.lang.Class.getConstructor0(Class.java:2723) 
     at java.lang.Class.newInstance0(Class.java:345) 
     at java.lang.Class.newInstance(Class.java:327) 
     at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166) 

這裏是清單:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Movies Lister 
Bundle-SymbolicName: MoviesLister 
Bundle-Version: 1.0.0 
Bundle-Activator: osgitut.movies.impl.MovieListerActivator 
Import-Package: org.osgi.framework,org.osgi.util.tracker,osgitut.movies 
Export-Package: osgitut.movies;version="1.0.0",osgitut.movies.impl;version="1.0.0" 

看起來和osgitut /電影/ MovieLister類是失蹤,但它在我創建的jar文件中。我懷疑我錯過了Manifest中的一些東西,但我無法弄清楚是什麼。

回答

1

你得到了一個NoClassDefFoundError這表明MovieListener類本身並不完整,並且依賴於一個超類,或者有一個成員,該類無法在該包中解析。

+0

非常正確。我不會從另一個包中導出一部分包。謝謝。 – mister270

相關問題