2

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
    

バンドルがコマンドラインで行ったことと同じことを実行できることを願っています: Java -jar floodlight.jar が開始されたら。しかし、何もせずにアクティブです。ライブラリのように振る舞うだけです。

バンドルが開始されたら、メインクラスを実行する方法を知りたいです。誰でも私を助けることができますか?

4

1 に答える 1

2

OSGi アプリケーションのエントリ ポイントは BundleActivator です。標準の Java アプリケーションのように main-method を呼び出すことはできません。ただし、バンドルの start(BundleContext) メソッドの main メソッドで行うすべてのことを行うことができます。

したがって、BundleActivator インターフェイスを実装して、マニフェストに追加します。

于 2013-02-15T22:11:36.030 に答える