从主类启动osgi bundle而不是实现BundleActivator

时间:2013-02-15 22:08:32

标签: java bundle fuseesb jbossfuse

我有一个名为floodlight.jar的jar文件。我可以在cmd行中运行它:java -jar floodlight.jar。现在我想将它转换为一个捆绑包,以便与FUSE ESB容器一起部署。这是我到目前为止所做的:

  1. 转换:

     java -jar bnd.jar wrap floodlight.jar
    

    生成名为floodlight.bar的包。将名称更改为floodlight.jar

  2. 部署

    FuseESB:karaf@root> osgi:install -s file:/home/usr/Dir/to/floodlight.jar
    
  3. 我希望捆绑包能像我在cmd行中所做的那样:java -jar floodlight.jar一旦开始。但是,它没有做任何事情就是活跃的。它就像一个图书馆。

    我想知道如何让bundle在启动后运行主类。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

OSGi应用程序的入口点是BundleActivator。您无法像标准Java应用程序那样调用main方法。但是,您可以在bundle的start(BundleContext)方法中执行main方法中的所有操作。

因此,实现BundleActivator接口并将其添加到清单中。