1

私は、Apache Felix を使用して osgi バンドルを扱うことを学んでいます。maven-bundle-pluginを使用してマニフェスト ファイルを生成しています。

インターフェイスのみを含む最初のバンドルを作成し、それをエクスポートして他のユーザーが使用できるようにしました。2 番目のバンドルには、最初のバンドルで作成されたインターフェイスを実装するクラスが含まれています。最初のバンドルによってエクスポートされたパッケージをインポートするように、2 番目のバンドルを構成しました。

2 番目のバンドルをコンパイルすると、インターフェイスを解決できないというエラーが表示されます。

バンドルがどのように機能するかを理解したかどうかはわかりません...

どうもありがとうございました ...

[編集] 詳細情報: Maven を使用してコンパイルするとエラーが発生しました:

[INFO] Compilation failure
....../ServeurImpl.java:[17,36] error: cannot find symbol

ServerImpl.java (17 行目) :

public class ServeurImpl implements Serveur {

Serverur は最初のバンドルで作成されたインターフェースです。

4

1 に答える 1

1

API を別のバンドルにデプロイするため、API を実装するバンドルの pom.xml ファイルに、利用可能であることを示す何かが必要になります。

pom.xml に次のようなものを入れます。

    <dependency>
        <groupId>the.group</groupId>
        <artifactId>Serveur</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <type>bundle</type>
        <scope>provided</scope>
    </dependency>

「提供」とは、コンテナがそれを提供することを意味します...あなたはフェリックスと言いました。

それが役立つことを願っています。

于 2013-11-08T19:39:07.957 に答える