OSGi не может найти активатор - PullRequest
1 голос
/ 10 февраля 2011

Манифест:

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

Компиляция и jarring:

$ javac -classpath equinox.jar src/start/*java
$ jar -cfm Mahjong.jar MahjongManifest.mf src/start/*class

Активатор:

package start;

import org.osgi.framework.*;

public class MahjongActivator implements BundleActivator
{
    public void start(BundleContext context)
    {
        System.out.println("Hi!");
    }
    public void stop(BundleContext context)
    {
        System.out.println("Bye!");
    }
}

Затем я загружаю .jar в OSGi и когда япопробуйте start() это, там написано:

org.osgi.framework.BundleException: The activator MahjongActivator for bundle Mahjong is invalid
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:156)
        at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:751)
        at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:370)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:276)
...
Caused by: java.lang.ClassNotFoundException: MahjongActivator
...
some more ClassNotFounds...

Почему?

1 Ответ

2 голосов
/ 10 февраля 2011

Это должен быть «Bundle-Activator: start.MahjongActivator» - вы пропустили имя пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...