2017-04-17 9 views
0

現在、私はosgiとkarafで作業しています。osgiの準備ができていない依存

私の問題は、 "osgi ready"依存性がないことです。これは、たとえば、karafにバンドルとしてデプロイできる準備ができていないjarを意味します。私は...私は
依存プロジェクトにjarファイルが含まれる「埋め込み依存性」を使用することを試みた

  • 私はこの種の問題に対処するために、2つの解決策を試してみました私が変換しようとした私は、jarファイルを埋め込むしようとすると、それは最初のjarファイルが依存する、というように。..

  • 他 のjarファイルを含めるように私に尋ねてきますので、これは解決策 かもしれないと思いますbndツールまたはfrを使ってバンドルに「osgi ready」ジャーを入れないom eclipseプロジェクトの「既存のJARアーカイブからのプラグイン」 そしてこれは同じ結果につながった、各ジャーは

...それはそれに依存する別のjarファイルを呼び出します。私はそれを間違った方法や、まさに問題ですがやっているかどうかわからないです。 osgiの準備ができていないことに対処するためのヒントはありますか?

答えて

3

最も簡単な方法は、wrap:プロトコルを使用してjarを自動作成することです。バックグラウンドでは、bndを使ってオンザフライでバンドルを作成します。単純にjapのmvn urlにwrapを追加します。

bundleを使用してjarをインストールしようとすると、install -s wrap:mvn:... karafは、インポートされたパッケージのうちどれが不足しているかを示します。同じ方法でこれらのパッケージを提供するjarをインストールしてください。瓶のポンは何が欠けているかのヒントを与えることができます。

これは、最初のjarファイルに多くの依存関係がある場合に、たくさんのjarファイルをインストールすることを意味します。

一緒にインストールできるjarのリストを取得したら、ラッププロトコルを使用して機能を作成するか、ビルド時に個人からバンドルを作成できます。

いずれにしても、servicemix bundlesをご覧ください。これは、多くのライブラリ用のOSGi対応バンドルを提供します。

+0

答えに感謝しますが、バンドルをosgifiedした後、私はいつもjava.lang.NoClassDefFoundErrorを取得します。 これまでは、クラスの例外が多数見つかりましたが、必要なパッケージをエクスポートすることで解決しました。 – larnouch

関連する問題