Menu Close

8.3. Import-Package ヘッダーが不完全

必要なすべての機能とバンドルがすでにインストールされ、ClassNotFound エラーが出される場合、バンドルの MANIFEST.MF ファイルの Import-Package ヘッダーが不完全であることを意味します。maven-bundle-plugin「既存の Maven プロジェクトの変更」を参照)は、バンドルの Import-Package ヘッダーを生成する際の優れたヘルプですが、以下の点に注意する必要があります。

  • Maven バンドルプラグイン設定の Import-Package 要素にワイルドカード * が含まれていることを確認します。ワイルドカードは、Java ソースコードをスキャンし、パッケージの依存関係の一覧を自動的に生成するよう、プラグインに指示します。
  • Maven バンドルプラグインは動的な依存関係を把握できません。たとえば、Java コードが明示的にクラスローダーを呼び出してクラスを動的に読み込む場合、バンドルプラグインはこれを考慮せず、必要な Java パッケージは生成した Import-Package ヘッダーには一覧表示されません。
  • OSGI-INF/blueprint ディレクトリーなど)Blueprint XML ファイルを定義すると、Blueprint XML ファイルからの依存関係 は自動的にランタイム時に解決されます