9

PDFBox ライブラリを使用して PDF ファイルを解析するための OSGI バンドルを開発しています。私は maven を使用してプロジェクトをビルドし、Karaf を OSGI コンテナーとして使用します。PDFBox ライブラリは OSGI 互換なので、これは簡単だと思いました。しかし、展開モデルを正しく理解できません。

従来の Web アプリでは、すべての依存関係を含む 1 つの WAR ファイルを作成し、それをサーブレット コンテナーに配置してデプロイします。一方、osgi バンドルをインストールする唯一の方法は、手動で行うことです。手動でダウンロードして Karaf 展開フォルダーにコピーする必要があるすべての依存関係をリストしたインストール手順ファイルを作成し、必ず正しい順序で実行する必要があります。石器時代に戻った気分です。

もっと簡単な方法があるはずですよね?私はまだmavenを使用して依存関係を宣言していますが、提供されたスコープを使用する必要があります。これらの依存関係を自動的にインストールできれば素晴らしいことです。

アプリケーションからバンドルを生成するために maven-bundle-plugin を使用しています。OBR リポジトリ (repository.xml) を生成し、obr karaf プラグインを使用してバンドルをインストールしようとしましたが、それでも依存関係には役立ちません。

4

1 に答える 1

9

バンドルのプロビジョニングにはさまざまな可能性があります。次のようなKarafコンソールを介してMavenを使用してバンドルをインストールすることを好みます。

install mvn:org.apache.pdfbox/pdfbox/1.8.4

すべてのバンドルを 1 つずつインストールしたくない場合は、ここで説明されているいわゆる機能を使用できます。機能には、必要なすべてのバンドルがリストされています。

<feature name='my-project' version='1.0.0'>
    <feature version='2.4.0'>camel-spring</feature>
    <bundle start-level='80' start='false'>mvn:com.mycompany.myproject/myproject-dao</bundle>    
    <bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-service</bundle>
    <bundle start-level='85' start='false'>mvn:com.mycompany.myproject/myproject-camel-routing</bundle>
</feature> 

Karaf コンソールから機能を追加します。

features:addUrl mvn:org.apache.servicemix.nmr/apache-servicemix-nmr/1.0.0-m2/xml/features
features:install nmr

ハンドラーの代わりに、mvnハンドラーを使用することもできますfile

features:addUrl file:base/features/features.xml
于 2014-03-07T16:39:02.480 に答える