2012-04-08 11 views
1

Я пытаюсь сделать очень простой тест OSGi, но я не могу заставить его работать. Кажется, OSGi runtime не может найти мой класс активатора. Любые подсказки?Почему этот тестовый комплект не работает?

Activator.java:

package test; 

import org.osgi.framework.BundleActivator; 
import org.osgi.framework.BundleContext; 

public class Activator implements BundleActivator 
{ 
    public void start(BundleContext context) throws Exception 
    { 
     System.out.println("Hello world"); 
    } 


    public void stop(BundleContext context) throws Exception 
    { 
     System.out.println("Goodbye World"); 
    } 
} 

MANIFEST.MF

Manifest-Version: 1.0 
Bundle-Name: Test 
Bundle-SymbolicName: Test 
Bundle-Version: 1.0.0 
Bundle-Activator: test.Activator 
Import-Package: org.osgi.framework 

я скомпилировать и упаковать мой активатор с

$ javac -classpath /usr/share/java/org.eclipse.osgi.jar Activator.java 
$ jar cmf MANIFEST.MF test.jar Activator.class 

и запустить OSGi с

$ java -jar /usr/share/java/org.eclipse.osgi.jar -console 

$ osgi> install file:///home/august/Documents/prog/java/osgi/test/test.jar 
Bundle id is 1 
$ osgi> start 1 
org.osgi.framework.BundleException: The activator test.Activator for bundle Test is invalid 
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171) 
... 
at java.lang.Thread.run(Thread.java:679) 
Caused by: java.lang.ClassNotFoundException: test.Activator 

ответ

1

Вы заглянули в архив баннеров? Мне кажется, что у вас отсутствует папка «test» в команде jar - если Activator.class находится в корневом банке, а не в правильном каталоге, загрузчик классов не найдет его.

+0

Ах, конечно. Благодаря! –

Смежные вопросы