0

私は OSGI を初めて使用します。ホスト サービスとコンシューマ サービスのバンドルを実装し、それらがどのように機能するかを確認しました。バンドルは現在アクティブな状態です。ただし、OSGI タイプのアプリケーションではない別のアプリケーションがあります。これは標準の Java アプリケーションです。 .今、私の混乱は、

  1. この Java プロジェクトでこれらの OSGI バンドルを参照するにはどうすればよいですか (私は Eclipse を使用しています。通常の Jar ファイルを参照するように参照できますか?)。
  2. ホスト サービスとコンシューマ サービスがアクティブなときに、サービス メソッドを呼び出すにはどうすればよいでしょうか。

通常、参照を取得することにより、Activator の Start メソッドでサービスにアクセスできることがわかりました。しかし、Service が正常に開始された後、Start イベントは再びトリガーされません。今回は、バンドルがアクティブ状態のときにサービスを明示的に呼び出すにはどうすればよいでしょうか?OSGI プロジェクトを作成すると、Eclipse は次の静的参照と静的 getContext() メソッドを自動的に作成します。この静的 getContext() を使用して目標を達成できますか? ?

Eclipse 自動作成コード

private static BundleContext context;

static BundleContext getContext() 
{   
    return context;
}

public void start(BundleContext bundleContext) throws Exception 
{
    Activator.context = bundleContext;
}
4

0 に答える 0