0

私はosgiを初めて使用し、経験がほとんどありません。config xml ファイルを使用して、Bean を osgi サービスとしてエクスポートする osgi バンドルがあります。そのサービスを別の osgi バンドルで使用したいと考えています。誰でもその方法を教えてもらえますか? 私はmavenとfelix osgiを使用しています。

4

2 に答える 2

1

OSGi サービスがどのようにエクスポートされるかは問題ではありません。青写真やその他の方法を使用します。これは OSGi サービスであるため、バンドルは OSGi サービス レジストリから取得できます。このためには、次のことを行う必要があります。

  1. 依存関係を宣言するために、そのパッケージをバンドル マニフェストにインポートします。Import-Package: com.acme.theservicepackage を META-INF/Manifest.mf に追加する必要があります。

  2. Activator クラスでは、バンドル コンテキストを使用してサービス レジストリからサービスを取得する必要があります。

    timeRef = bc.getServiceReference(TimeService.class.getName()); if (timeRef != null) { timeService = (TimeService) bc.getService(timeRef); }

次に、メソッドが何であれ、そのメソッドを呼び出して timeService (またはサービスが使用している任意のインターフェイス) を使用するだけです。

ここには多くの詳細があります。代わりにヘルパーの ServiceTracker クラス、ブループリント、または宣言型サービスを使用できます。やれ。

基本的な OSGi サービスのデモがここにあります。

于 2012-06-26T07:33:23.697 に答える
1

ブループリントでサービスを利用しますか? あなたの説明「config xml」は、青写真のように聞こえます。この場合、使用できます

私のウェブサイトに完全な例があります: http://www.liquid-reality.de/x/DIBZ

この例は、ブループリントを使用してサービスをエクスポートおよびインポートする方法を示しています。

于 2012-06-25T15:50:15.337 に答える